ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
2023
2023
EMPFEHLEN
-
20.04.12 11:36 #1
Mitglied
- Registriert seit
- Jan 2007
- Beiträge
- 13
Hallo
Bin ein Anfänger in Mysql und habe da ein Problem.
Es soll Eine Access DB in My Sqlumgestrickt werden.
Dieses ist soweit mittels Dump geschehen.
Die Verbindung ist hergestellt und kann von VB6 heraus auch schon die MySql DB
auslesen, Comboboxen füllen ist auch OK.
Nun möchte ich auch ein Datagrid mit Daten aus der DB füllen. Und da stoße Ich auf Probleme
Vielleicht weiss von euch jemend Rat. Im folgendem Code ist ein Fehler in der Syntax, kann aber nicht lokalisieren wo, Es Kommt der Syntaxfehler in Line1. Allerdings ist der String recht lang.
hier der Code
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
Private Sub TEST(Optional ByVal tDate As Date = 0) Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim Query As String Dim conf_DB_ConnectionString As String Const const_mySQLDriver = "{MySQL ODBC 3.51 Driver}" Const const_mySQLServer = "localhost" Const const_mySQLDatabase = "DB" Const const_mySQLUser = "root" Const const_mySQLPassword = "" Const const_mySQLOption = "" conf_DB_ConnectionString = "DRIVER=" & const_mySQLDriver & ";" & _ "SERVER=" & const_mySQLServer & ";" & _ "DATABASE=" & const_mySQLDatabase & ";" & _ "USER=" & const_mySQLUser & ";" & _ "PASSWORD=" & const_mySQLPassword & ";" & _ "OPTION=" & const_mySQLOption & ";" Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cn.Open ([conf_DB_ConnectionString]) Query = " SELECT eintraege.*, bezeichnungen.Text, bezeichnungen.Nummer, schichtname.ShiftName, kategorie.Text as C2Text" Query = " FROM eintraege LEFT OUTER JOIN bezeichnungen ON eintraege.KennungID = bezeichnungen.ID) LEFT OUTER JOIN schichtname ON eintraege.ShiftID = Schichtname.ID)" Query = " LEFT OUTER JOIN kategorie ON eintraege.Combo2ID = kategorie.ID" Query = " ORDER BY eintraege.BereichNr, Date" If tDate = 0 Then Query = " WHERE eintraege.Date > = " & ToSql(ToDate(DateAdd("d", -1, Now))) ElseIf cmbSchicht.ListIndex > 0 Then Query = " WHERE eintraege.Date > = " & ToSql(DateSerial(Year(tDate), Month(tDate), Day(tDate))) tDate = DateAdd("d", 1, tDate) Query = " AND eintraege.Date < " & ToSql(DateSerial(Year(tDate), Month(tDate), Day(tDate))) Query = " AND eintraege.ShiftID = " & ToSql(cmbSchicht.ItemData(cmbSchicht.ListIndex)) Else Query = " WHERE eintraege.Date > = " & ToSql(DateSerial(Year(tDate), Month(tDate), Day(tDate))) tDate = DateAdd("d", 1, tDate) Query = " AND eintraege.Date < " & ToSql(DateSerial(Year(tDate), Month(tDate), Day(tDate))) Query = " ORDER BY eintraege.BereichNr, Date" End If rs.Open Query, cn
-
20.04.12 11:50 #2
Mitglied Brillant
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 900
Der Aufbau deines Querys ist Murks.
Code vb:1 2 3 4
Query = " SELECT eintraege.*, bezeichnungen.Text, bezeichnungen.Nummer, schichtname.ShiftName, kategorie.Text as C2Text" Query = Query & " FROM eintraege LEFT OUTER JOIN bezeichnungen ON eintraege.KennungID = bezeichnungen.ID) LEFT OUTER JOIN schichtname ON eintraege.ShiftID = Schichtname.ID)" Query = Query & " LEFT OUTER JOIN kategorie ON eintraege.Combo2ID = kategorie.ID" Query = Query & " ORDER BY eintraege.BereichNr, Date"
In deiner Variante enthält Query nur die letzte Zuweisung ("ORDER BY blablaba")Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
20.04.12 11:56 #3
Mitglied
- Registriert seit
- Jan 2007
- Beiträge
- 13
Danke für die schnelle Antwort.
wie würde es denn richtig lauten ****
-
20.04.12 12:08 #4
Mitglied Brillant
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 900
steht doch da.....
Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
20.04.12 12:37 #5
Mitglied
- Registriert seit
- Jan 2007
- Beiträge
- 13
Sorry, Habs so eingetragen aber leider immer noch Fehler in der Sytax
-
20.04.12 13:06 #6
Mitglied Brillant
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 900
und wo genau?
Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
20.04.12 13:16 #7
Mitglied
- Registriert seit
- Jan 2007
- Beiträge
- 13
in der zweiten Zeile bei LEFT OUTER JOIN schichtname ON eintraege.ShiftID
Query = Query & " FROM eintraege LEFT OUTER JOIN bezeichnungen ON eintraege.KennungID = bezeichnungen.ID) LEFT OUTER JOIN schichtname ON eintraege.ShiftID = Schichtname.ID)"
-
20.04.12 14:16 #8
Mitglied
- Registriert seit
- Jan 2007
- Beiträge
- 13
So der erste abschnitt läuft nun ohne Fehler es war noch eine Klammer offen.
aber im zweiten abschnitt wird noch über das Datum gemeckert
eventuell muss es umformatiert werden ****
in der Access DB stand das Datum im Format dd.mm.yyyy
in der Mysql DB im Format mm.dd.yyyy
If tDate = 0 Then
Query = " WHERE eintraege.Date > = " & ToSql(ToDate(DateAdd("d", -1, Now)))
ElseIf cmbSchicht.ListIndex > 0 Then
Query = Query & " WHERE eintraege.Date > = " & ToSql(DateSerial(Year(tDate), Month(tDate), Day(tDate)))
tDate = DateAdd("d", 1, tDate)
Query =Query & " AND eintraege.Date < " & ToSql(DateSerial(Year(tDate), Month(tDate), Day(tDate)))
Query =Query & " AND eintraege.ShiftID = " & ToSql(cmbSchicht.ItemData(cmbSchicht.ListIndex))
Else
Query =Query & " WHERE eintraege.Date > = " & ToSql(DateSerial(Year(tDate), Month(tDate), Day(tDate)))
tDate = DateAdd("d", 1, tDate)
Query =Query & " AND eintraege.Date < " & ToSql(DateSerial(Year(tDate), Month(tDate), Day(tDate)))
Query =Query & " ORDER BY eintraege.BereichNr, Date"
End If
-
21.04.12 10:18 #9
Mitglied Brillant
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 900
Was isn "ToSQL" eine Funktion?
Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
23.04.12 01:34 #10
Hallo:
Tipp am Rande, ein Debug.Print kann Wunder bewirken, da man die SQL-Anweisung komplett analysieren kann, mit etwaigen Variablen, die eingesetzt/ersetzt werden sollen, daher würde ich empfehlen, diese erst einmal auszugeben, und dann direkt im Sql-Fenster eingeben/bearbeiten und ausführen, anschließend kann man Diskrepanzen im Code ausbessern.
@Zvoni: Schätze mal, dass in ToSql(...) das Datum in eine für MySql lesbare Form umgewandelt werden soll.
Viele Grüße, ...Geändert von VScan (23.04.12 um 01:37 Uhr)
„Jeder Fehler erscheint unglaublich dumm, wenn Andere ihn begehen.“
Georg Christoph Lichtenberg
Netiquette (vA §15)
Codetags/Codeboxen
Sehr gut gelöste Beiträge bitte mit einem "Danke" abschließen, danke :D
-
03.05.12 10:32 #11
Mitglied Platin
- Registriert seit
- Aug 2006
- Beiträge
- 508
Einfachstes Vorgehen bei SQL-Fehlern:
1. Wie VScan agt, den SQL in seiner Gesamtheit mit ausgefüllten Variablen ausgeben. Entweder per Debug.print oder im Direktfenster per debuggen.
2. Diesen SQL per Management Consolidate im Direktfenster ausführen
3. Fehlermeldung analysieren
4. Profit
Ähnliche Themen
-
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Von strandjunge im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 17.02.13, 08:46 -
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server...
Von Lumakrieger im Forum PHPAntworten: 6Letzter Beitrag: 07.08.09, 22:12 -
MySQL Query: Warning: mysql_fetch_row():supplied resource is not a valid MySQL result
Von blck im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 29.11.08, 20:08 -
MySQL: ERROR 2013 (HY000): Lost connection to MySQL server during query
Von blumshuett im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 07.06.06, 23:23 -
mysql: mysql-server: mysql.sock fehlt (Suse 9.1)
Von zappoth im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 08.05.06, 18:06




Zitieren
Login