Datenbank-Zugriff über ODBC auf MySQL und MS-Access unter Lazarus (TODBCConnection) und MSEide (TmseODBCConnection). Ich dachte, soooo buggy können die ODBC-Komponenten doch nicht sein, dass man nicht die einfachsten Datenbank-Zugriffe damit hinbekommt.
¡¡¡ Aber ich verzweifle noch !!!
Ich dachte, nun einen Weg gefunden zu haben um auch unter Windows an die MS-Access DB heranzukommen.
Sowohl die TODBCConnection von Lazarus als auch die TmseODBCConnection funktionieren super unter Linux auf MySQL (ich mache keine dollen Sachen, nur SELECT, INSERT und UPDATE von Varchar, Integer und Double-Felder).
Auch unter Windows (XP, mit SP2 und MS-Access 2000) über den ODBC kann ich problemlos SELECT-Statement machen (die Anwendung kennt die Felder, brauche keine System-Tables etc.), aber
INSERT und UPDATE führen immer zu Fehler:
Anzahl der Parameter stimmt nicht, obwohl das Statement 100% korrekt ist. ¡¡¡Das gleiche Statement in MS-Access ausgeführt funktioniert!!!
Aber über Lazarus und/oder MSEide immer der Fehler, dass die Anzahl der Parameter falsch ist:
UPDATE baumtabelle SET baumart = "Tanne" WHERE ID = 2;
hat doch alle Parameter, ist ein einziger String, nicht mit TParam gemacht.
Habe auch probiert mit und ohne Semikolon hintendran, aber immer das gleiche.
Das gleiche auch bei z.B.
INSERT INTO baumtabelle VALUES (3,"abc","xyz","bnr","Tanne",0.7,0.3,3,0,100,14,0.16,10,1);
Statement funktioniert perfekt in MS-Access, aber über Lazarus/MSEide-ODBC wird die Anzahl der Parameter angemeckert (und die ist korrekt).
¿¿Was mach ich nur falsch, woran könnte es liegen??
¿¿Sind die ODBC-Komponenten wirklich soooo buggy?? ¿¿Alle beide, die von Lazarus UND MSEide??
¿¿Hat jemand eine Idee??
MS-Access über ODBC, es muss doch gehen
-
- Beiträge: 155
- Registriert: Mi 22. Aug 2007, 14:52
- OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
- CPU-Target: 32Bit
- Wohnort: 65719 Hofheim am Taunus
- Kontaktdaten:
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: MS-Access über ODBC, es muss doch gehen
Du brauchst nicht auch noch im selben Forum alles doppelt posten. Es reicht wenn die Leute schon immer nicht kappieren das sie nicht in 3 Foren den selben Post absetzen müssen da eh in den entsprechend Thematisierten Foren immer die selben Leute unterwegs sind nein jetzt werden schon in ein und dem selben Forum Posts dubliziert.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 155
- Registriert: Mi 22. Aug 2007, 14:52
- OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
- CPU-Target: 32Bit
- Wohnort: 65719 Hofheim am Taunus
- Kontaktdaten:
Re: MS-Access über ODBC, es muss doch gehen
Lieber Christian,
entschuldige bitte dieses vorgehen. Ich möchte nämlich gerne 2 Antworten auf mein Problem:
1. Für Lazarus, für die LCL-Komponente TODBCConnection mit MS-Access unter Windows.
2. Für MSEide für die tmseodbcconnection.
Martin hat mich darauf hingewiesen, dass sämtliche Posts, die MSEide betreffen, im Unterforum von MSEide zu stehen haben, deshalb habe ich dies dort zusätzlich hingestellt.
Da anscheinend aber mehrere Programmierer Probleme mit Lazarus und MS-Access haben (siehe z.B. Thema `MS Access zugriff - letzter Thread!`) dachte ich, dass gehört auch ins Forum `Lazarus-Datenbanken`.
Denn da hiess es : Es besteht noch hoffnung um MS-Access per ODBC in Lazarus zu "verarbeiten" ^^
(von EugenE am 11.6.2008).
¿Hast Du `ne Idee mit der ODBCConnection?
entschuldige bitte dieses vorgehen. Ich möchte nämlich gerne 2 Antworten auf mein Problem:
1. Für Lazarus, für die LCL-Komponente TODBCConnection mit MS-Access unter Windows.
2. Für MSEide für die tmseodbcconnection.
Martin hat mich darauf hingewiesen, dass sämtliche Posts, die MSEide betreffen, im Unterforum von MSEide zu stehen haben, deshalb habe ich dies dort zusätzlich hingestellt.
Da anscheinend aber mehrere Programmierer Probleme mit Lazarus und MS-Access haben (siehe z.B. Thema `MS Access zugriff - letzter Thread!`) dachte ich, dass gehört auch ins Forum `Lazarus-Datenbanken`.
Denn da hiess es : Es besteht noch hoffnung um MS-Access per ODBC in Lazarus zu "verarbeiten" ^^
(von EugenE am 11.6.2008).
¿Hast Du `ne Idee mit der ODBCConnection?
-
- Beiträge: 155
- Registriert: Mi 22. Aug 2007, 14:52
- OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
- CPU-Target: 32Bit
- Wohnort: 65719 Hofheim am Taunus
- Kontaktdaten:
Re: MS-Access über ODBC, es muss doch gehen
Problem gelöst:
Unter Windows/ODBC/MS-Access dürfen KEINE doppelten Anführungszeichen in die SQL-Statements. Verwendet man einfache Anführungszeichen dann funktioniert`s:
FÜHRT ZU FEHLER:
Korrekt:
und damit im Pascal-Code etwas umständlicher zu schreiben
Kleine Dinge, grosse Wirkung, Martin hats rausgefunden. Mögen anderen diese Probleme erspart bleiben und finden die Lösung schnell im Lazarus-Forum.
Unter Windows/ODBC/MS-Access dürfen KEINE doppelten Anführungszeichen in die SQL-Statements. Verwendet man einfache Anführungszeichen dann funktioniert`s:
FÜHRT ZU FEHLER:
Code: Alles auswählen
UPDATE baumtabelle SET baumart = "Tanne" WHERE ID = 2;
Code: Alles auswählen
UPDATE baumtabelle SET baumart = 'Tanne' WHERE ID = 2;
Code: Alles auswählen
SQLQuery2.SQL.Add ('UPDATE baumtabelle SET baumart = '''+Edit1.Text+''' WHERE ID='+id);