Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL in Access DB (https://www.delphipraxis.net/7091-mysql-access-db.html)

Jazz 9. Aug 2003 17:47

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.

xbu58 9. Aug 2003 18:32

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

MrSpock 9. Aug 2003 19:03

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.

Jazz 9. Aug 2003 21:59

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...

Jazz 9. Aug 2003 23:44

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:
ADOCommand1.CommandType := cmdText;
      ADOCommand1.CommandText := 'INSERT INTO Tabelle(var1,var2,var3) VALUES ('+QuotedStr(var1)+','+QuotedStr(var2)+','+QuotedStr(var3)+')';
      ADOCommand1.Execute;
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:

xbu58 10. Aug 2003 06:18

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:
ADOCommand1.CommandText :=
          'INSERT INTO Tabelle(intFld,StrFld,DateFld) '+
          'VALUES ('+IntToStr(IntVar)+','+QuotedStr(StrVar) +','+
                    QuotedStr(DateVar)+')';
Gruss
Xaver

Jazz 10. Aug 2003 11:29

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.

xbu58 11. Aug 2003 05:57

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:
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;
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!

Gruss
Xaver

Jazz 11. Aug 2003 21:50

Re: MySQL in Access DB
 
Supergeil... :dancer:
Es funzt, kein Fehler mehr.
Es lag an dem ParamCheck:=True;

Herlichen Dank Xaver!!!!!

MfG Jazz :bouncing4:

xbu58 12. Aug 2003 01:40

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.
Seite 2 von 3     12 3      

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