![]() |
Re: MySQL in Access DB
Weil das ein Freeware proggi ist und nicht jeder einen lokalen SQL Server laufen hat (laufen lassen möchte). Ich brauche eine Datei als DB.
|
Re: MySQL in Access DB
Tja, aber so viel ich weiss, muss Access auch installiert sein, damit Du auf diese DB-Files zugreifen kannst. :roll:
Gruss Xaver |
Re: MySQL in Access DB
Hallo Jazz,
ich kann mir nicht vorstellen, dass Access keinen Doppelpunkt mag. Ein Doppelpunkt am Anfang eines Strings kann jedoch als Parameter interepretiert werden. Wenn du nur ein paar Daten lokal halten willst, könntest du Paradox benutzen (dazu musst du aber die BDE auf dem Zielrechner installieren) oder, wenn du Delphi 7 hast, könntest du XML Dateien benutzen. Für kleine Datenmengen wären auch INI-Dateien möglich oder Text-Files, wenn du keinen direkten Zugriff brauchst. |
Re: MySQL in Access DB
Also
1. Access muss auf dem Zielrechner nicht installiert sein. 2. Ich muss große Datenmengen speichern, möchte aber die BDE nicht nutzen. 3. gibt es Alternativen??? 4. Danke für eure Hilfe... |
Re: MySQL in Access DB
Wollt noch fragen, was ihr mir empfehlt wie ich Dinge in eine Access DB eintrage, vielleicht liegts ja daran. Ich benutze:
Delphi-Quellcode:
Der Witz ist: wenn ich den ":" direkt per Code in die Variable schreibe geht es. Nur wenn er von der SQL DB abgerufen wird und in ein Memo, von dort in eine Variable und dann in die Access Db, dann gibts den Fehler. Ich hoffe mir kann jemand helfen. :roll:
ADOCommand1.CommandType := cmdText;
ADOCommand1.CommandText := 'INSERT INTO Tabelle(var1,var2,var3) VALUES ('+QuotedStr(var1)+','+QuotedStr(var2)+','+QuotedStr(var3)+')'; ADOCommand1.Execute; |
Re: MySQL in Access DB
Hallo Jazz
Nun ich wusste nicht, dass Access nicht installiert sein muss, um dessen DB's zu zugreifen. Man lehrnt doch nie aus! Frage zu Deinem Problem: Sind den alle Variablen der Tabelle strings? Wenn nicht, darfst Du für die entsprechenden Felder nicht QuotedStr verwenden, da QuotedStr immer ein führendes und abschliesendes ' setzt! SQL versteht das nur bei Strings und Datum/Zeit-Angaben! Beispiel:
Code:
Gruss
ADOCommand1.CommandText :=
'INSERT INTO Tabelle(intFld,StrFld,DateFld) '+ 'VALUES ('+IntToStr(IntVar)+','+QuotedStr(StrVar) +','+ QuotedStr(DateVar)+')'; Xaver |
Re: MySQL in Access DB
hm. ich denke schon, denn wenn in em text in der sql db kein ":" ist dann geht ja alles wunderbar.
Übrigens: für den Access Zugriff muss nur MDAC und Jet installiert sein, was die meisten Windows Versionen schon Standardmäßig haben. |
Re: MySQL in Access DB
Hallo Jazz
TADOCommand hat ein Property CheckParam, welches standardmässig auf true steht. Setzt das mal auf false! Wenn das nicht geht, kannst Du immer noch mit einem TADOQuery arbeiten. Anstelle eines Insert-Statements kannst Du ein Select-Statement verwenden, welches Du aktivierst. Das könnte etwa so aussehen:
Code:
Damit nicht alle Datensätze geladen werden, kannst Du entweder das Property MaxRecords auf 1 setzen oder wie oben ein where-Statement verwenden (z.B. Schlüssel-Felder auf die neuen werte setzen). Der Vorteil bei der Art des Beispiels ist, dass ein schon vorhandener Datensatz gleich geändert werden kann!
ADOQuery1.SQL.Text := 'SELECT * FROM Table WHERE KeyFld=1';
ADOQuery1.Active := true; try if ADOQuery1.EOF then ADOQuery1.Insert else ADOQuery1.Edit; ADOQuery1.FieldByName('var1').AsString := var1; ADOQuery1.FieldByName('var2').AsString := var2; ADOQuery1.FieldByName('var3').AsString := var3; ADOQuery1.Post; finally ADOQuery1.Active := false; end; Gruss Xaver |
Re: MySQL in Access DB
Supergeil... :dancer:
Es funzt, kein Fehler mehr. Es lag an dem ParamCheck:=True; Herlichen Dank Xaver!!!!! MfG Jazz :bouncing4: |
Re: MySQL in Access DB
Hallo Jazz
Freud mich, dass ich die helfen konnte Gruss Xaver |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz