Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Statement um aus Textdatei lesen (https://www.delphipraxis.net/43608-sql-statement-um-aus-textdatei-lesen.html)

Gambit 6. Apr 2005 13:30

Datenbank: MySQL • Version: 4 • Zugriff über: ZEOS

SQL Statement um aus Textdatei lesen
 
Hallo,
ich möchte eine Datenbank mittels SQL-Statements aktualisieren(Update table...) dabei soll der Inhalt eines Textfeldes(Memo) aus einer Textdatei gelesen werden. Gibts dafür einen direkten SQL-Befehl oder muss ich mir den Inhalt der Textdatei zuerst auf eine temporäre Variable legen?

Gruß

Gambit

RavenIV 6. Apr 2005 13:34

Re: SQL Statement um aus Textdatei lesen
 
einen direkten SQL-befehl gibt es nicht.
musst dir die datei einlesen und dann in die DB schreiben.

gruesssle

Stevie 6. Apr 2005 15:04

Re: SQL Statement um aus Textdatei lesen
 
Inhalt der Textdatei in Memo laden...
Delphi-Quellcode:
Memo.Lines.LoadFromFile('...');
Inhalt des Memos in TZSQLProcessor laden...
Delphi-Quellcode:
ZSQLProcessor.Script.Assign(Memo.Lines);
Ausführen
Delphi-Quellcode:
ZSQLProcessor.Execute;
P.S.: Bei einigen Datenbanken müssen die Eigenschaften Delimiter und DelimiterType noch richtig gesetzt werden!

glkgereon 6. Apr 2005 15:09

Re: SQL Statement um aus Textdatei lesen
 
wobei eine TStringList auch reichen würde, wieso willst du es erst in eine memo laden?
wieso mit nem panzer auf die arme mücke los?

entsprechend dann

Delphi-Quellcode:
var Temp:TtringList;
begin
  Temp:=TStringList.Create;
  Temp.LoadFromFile('...');
  ZSQLProcessor.Script.Assign(Temp);
  ZSQLProcessor.Execute;
  Temp.Free;
end;

Edit:
Ich hab keinen Plan was ihr da macht, hab nur die Memo in ne StringList geändert...

Orbmu2k 6. Apr 2005 15:10

Re: SQL Statement um aus Textdatei lesen
 
Wozu so umständlich ?

Delphi-Quellcode:
  ZSQLProcessor1.LoadFromFile('c:\test.sql');

Stevie 6. Apr 2005 15:13

Re: SQL Statement um aus Textdatei lesen
 
Vielleicht will er das geladene Script noch vorher ansehen und/oder modifizieren??? :roll:

Gambit 6. Apr 2005 20:32

Re: SQL Statement um aus Textdatei lesen
 
Hallo nochmal und Danke für die Antworten.

Ich muss zu meiner Schande gestehen, dass ich noch nie mit diesem ZSQLProcessor gearbeitet habe. Wie benutzt man den genau bzw. was macht man damit?
Mit dem Code:

Delphi-Quellcode:
var Temp:TtringList;
begin
  Temp:=TStringList.Create;
  Temp.LoadFromFile('...');
  ZSQLProcessor.Script.Assign(Temp);
  ZSQLProcessor.Execute;
  Temp.Free;
end;
kann ich jetzt ab der Zeile
Delphi-Quellcode:
ZSQLProcessor.Script.Assign(Temp);
nicht so schrecklich viel anfangen. Was passiert denn da genau?

Gruß

Gambit

Stevie 7. Apr 2005 07:55

Re: SQL Statement um aus Textdatei lesen
 
Hallo Gambit,

mit Assign weißt du den Inhalt von Temp auf Script von ZSQLProcessor (beides sind ja Objekte vom Typ TStrings).
Ein ZSQLProcessor.Script := Temp würde ja bloß bewirken, dass Script auf das Objekt Temp zeigen würde.
Tja, und mit Execute wird das Script (es können eben auch mehrere SQL-Statements hintereinander ausgeführt werden) an die Datenbank geschickt.

Wenn du jetzt allerdings nur eine Datei auswählen willst und diese ausführen willst, dann solltest du den "Umweg" über Temp tatsächlich weg lassen und gleich mit ZSQLProcessor.LoadFromFile('...') arbeiten.

MfG
Stevie

Gambit 7. Apr 2005 08:26

Re: SQL Statement um aus Textdatei lesen
 
Gut, das hab' ich soweit verstanden. Nur mit dem Execute ist mir noch nicht ganz klar. Wenn damit das Sript oder in diesem Fall ein Text aus einer Textdatei an die DB geschickt wird, wie wird der Text denn dann einem bestimmten Memo aus der Tabelle zugewiesen?
Oder geht das dann nach dem Execute beispielsweise mit

Delphi-Quellcode:
ZQuery.FieldByName('MemoText').asString:= ZSQLProcessor.Script.text;
Gruß

Gambit

Stevie 7. Apr 2005 08:32

Re: SQL Statement um aus Textdatei lesen
 
:wall: :wall: :wall:

Ich glaub, ich hab da was missverstanden! :oops:

Ich dachte, du wolltest ein Script aus ner Datei laden, und das ausführen... :pale:

Du willst also "nur" den Text aus einer Text-Datei in ein Datenbankfeld schreiben?
Das machst du dann über den TStrings-"Umweg" (in TStrings-Objekt laden und dann TStrings.Text dem TField.AsString zuweisen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz