_tasos Δημοσ. 7 Σεπτεμβρίου 2010 Δημοσ. 7 Σεπτεμβρίου 2010 Εφόσον δουλεύεις με vb.net φαντάζομαι ότι έχεις και τον Connector/Net για τη διασύνδεση με τη mysql, σωστά; Στο loop που περιγράφεις χρησιμοποιείς το ίδιο connection object;
attsifte Δημοσ. 7 Σεπτεμβρίου 2010 Δημοσ. 7 Σεπτεμβρίου 2010 Δές αν σου κάνει κάτι τέτοιο. Απο την αρχή ώς το τέλος όλη την δουλειά σου την έχεις σε ένα connection, και όταν τελειώσεις την δουλειά σου το κλείνεις να μην μείνει ανοιχτό. > Dim conn As New DbConnection Try conn.ConnectionString = <Your Connection String> conn.Open conn.BeginTransaction ................. <do work> ................. conn.close conn.Dispose End Try
nkeroulis Δημοσ. 7 Σεπτεμβρίου 2010 Μέλος Δημοσ. 7 Σεπτεμβρίου 2010 Δές αν σου κάνει κάτι τέτοιο.Απο την αρχή ώς το τέλος όλη την δουλειά σου την έχεις σε ένα 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" κάτι τέτοιο.
nkeroulis Δημοσ. 7 Σεπτεμβρίου 2010 Μέλος Δημοσ. 7 Σεπτεμβρίου 2010 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)
macabre_sunsets Δημοσ. 7 Σεπτεμβρίου 2010 Δημοσ. 7 Σεπτεμβρίου 2010 >SELECT ID FROM xxxxx ORDER BY ID DESC LIMIT 0,1 Διαβάζει όλα τα ID, τα ταξινομεί με φθίνουσα σειρά και επιλέγει το πρώτο. Με λίγα λόγια το τελευταίο ID που έχει ο πίνακας - δεδομένου ότι τα ID αυξάνεται συνέχεια. Εναλλακτικά μπορείς να χρησιμοποιήσεις την εντολή last_insert_id().
nkeroulis Δημοσ. 7 Σεπτεμβρίου 2010 Μέλος Δημοσ. 7 Σεπτεμβρίου 2010 Thanks macabre_sunsets αυτο περίμενα. last_insert_id()
attsifte Δημοσ. 7 Σεπτεμβρίου 2010 Δημοσ. 7 Σεπτεμβρίου 2010 Ίσως πρέπει να αλλάξεις λίγο την λογική και την σχεδίαση: 1. Άνοιγμα connection => read input => σώσε σε μεταβλητές στον κώδικα = > κλείσε connection. 2. Κάνε οτι κάνεις. 3. Άνοιγμα connection => save output => κλείσε connection. Ίσως και να πηγαίνεις να γράψεις σε έναν πίνακα που έχει κλειδώσει απο το 1ο read που κάνεις, οπότε στο γράψιμο του Output να μην σε αφήνει. Άν πάλι τα παραπάνω δεν σε βοηθάνε πήγαινε σε λύση να ανεβάσεις το connection timeoute, αυτό το ρυθμίζεις και απο το connection string. Αλλά αυτό δεν είναι καλή λύση!
nkeroulis Δημοσ. 7 Σεπτεμβρίου 2010 Μέλος Δημοσ. 7 Σεπτεμβρίου 2010 Τελικά δεν χρειάζεται το έχω φτιάξει πολύ Light-Weight.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.