Προς το περιεχόμενο

MySQL Connection (Solved)


nkeroulis

Προτεινόμενες αναρτήσεις

Δημοσ.

Εφόσον δουλεύεις με vb.net φαντάζομαι ότι έχεις και τον Connector/Net για τη διασύνδεση με τη mysql, σωστά; Στο loop που περιγράφεις χρησιμοποιείς το ίδιο connection object;

Δημοσ.

Δές αν σου κάνει κάτι τέτοιο.

Απο την αρχή ώς το τέλος όλη την δουλειά σου την έχεις σε ένα connection, και όταν τελειώσεις την δουλειά σου το κλείνεις να μην μείνει ανοιχτό.

 

>
Dim conn As New DbConnection
Try
conn.ConnectionString = <Your Connection String>
conn.Open
conn.BeginTransaction
.................
<do work>
.................
conn.close
conn.Dispose
End Try

Δημοσ.
Δές αν σου κάνει κάτι τέτοιο.

Απο την αρχή ώς το τέλος όλη την δουλειά σου την έχεις σε ένα connection, και όταν τελειώσεις την δουλειά σου το κλείνεις να μην μείνει ανοιχτό.

 

>
Dim conn As New DbConnection
Try
conn.ConnectionString = <Your Connection String>
conn.Open
conn.BeginTransaction
.................
<do work>
.................
conn.close
conn.Dispose
End Try

 

Δεν με καταλάβατε.

 

1. Ανοίγει η 1η σύνδεση για να διαβάσω το "Input".

2. Κάνω κάποια πράγματα που μπορεί να πάρουν 300ms ή και 10min.

3. Ανοίγει η 2η σύνδεση για να γράψω το "Output".

 

Database:

| ID | INPUT | OUTPUT |

 

Το (3) είναι το αποτέλεσμα του (2) για υτο δεν μπορεί να πάει με την σειρά.

1.

3.

2.

 

Αν αυτά που θέλω να κάνω στο (2) παίρνουν παραπάνω απο 1 sec τότε η σύνδεση

κλείνει απο μόνη της (δεν ξέρω γιατι) και άμα πάω να κάνω κάτι λεει:

"An error aquired while command execution" κάτι τέτοιο.

Δημοσ.

INSERT INTO Table (Name, Password) VALUES ('John','1235')

 

| ID | Name | Password |

| 1 | Maria | 12131 |

| 2 | John | 1235 |

 

Πώς μπορώ να μάθω ποιο είναι το ID του John ΧΩΡΙΣ όμως να χρησιμοποιήσω

τα Name, Password?

 

Οι σκέψεις μου: Σίγουρα η MySQL DB ξέρει ποιο ID θα έχει το καινούργιο entry.

Όμως ποια/ες εντολές πρέπει να χρησιμοποιήσω?

 

Παρολα αυτά μου φαίνεται περιέργο να υπάρχει κάτι τέτοιο.

 

---------- Προσθήκη στις 13:07 ---------- Προηγούμενο μήνυμα στις 12:58 ----------

 

Το βρήκα. Μετράς πόσα υπάρχουν πριν το βάλεις και αφού το βάλεις ξέρεις οτι το ID του θά είναι

(+1) ... Ευχαριστώ πολύ για την βοήθεια σας... (99% Sarcastic)

Δημοσ.

>SELECT ID FROM xxxxx ORDER BY ID DESC LIMIT 0,1

Διαβάζει όλα τα ID, τα ταξινομεί με φθίνουσα σειρά και επιλέγει το πρώτο. Με λίγα λόγια το τελευταίο ID που έχει ο πίνακας - δεδομένου ότι τα ID αυξάνεται συνέχεια.

 

Εναλλακτικά μπορείς να χρησιμοποιήσεις την εντολή last_insert_id().

Δημοσ.

Ίσως πρέπει να αλλάξεις λίγο την λογική και την σχεδίαση:

1. Άνοιγμα connection => read input => σώσε σε μεταβλητές στον κώδικα = > κλείσε connection.

2. Κάνε οτι κάνεις.

3. Άνοιγμα connection => save output => κλείσε connection.

 

Ίσως και να πηγαίνεις να γράψεις σε έναν πίνακα που έχει κλειδώσει απο το 1ο read που κάνεις, οπότε στο γράψιμο του Output να μην σε αφήνει.

 

Άν πάλι τα παραπάνω δεν σε βοηθάνε πήγαινε σε λύση να ανεβάσεις το connection timeoute, αυτό το ρυθμίζεις και απο το connection string. Αλλά αυτό δεν είναι καλή λύση!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...