Autor Beitrag
davidbaumann
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 39

Win XP
D7PE
BeitragVerfasst: Fr 19.08.05 09:00 
Ich habe eine kleine Klasse geschrieben, die mir aus einer Datenbank ein Insert-Script macht. Integer usw geht schon alles.
Jetzt hat eine Datenbank ein Feld vom Typ 'Image', also binär.
Bis jetzt baue ich das Script so:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
case SQLDataType[ColumnProperties[i].iFieldType] of
 _string:            sData :=   sData + char(39) +  Collect[ColumnProperties[i].sFieldName] + char(39);
 _float:             sData := sData + floatToStr (Collect[ColumnProperties[i].sFieldName]);
 _integer:           sData := sData + IntToStr(Collect[ColumnProperties[i].sFieldName]);
 _datetime:          sData := sData + DateTimeToStr(Collect[ColumnProperties[i].sFieldName]);
 _binary:            sData := sData + VarToStr(Collect[ColumnProperties[i].sFieldName]);


Mit VarToStr hats nicht geklappt...
ColumnProperties[i].sFieldName gibt im Endeffekt einfach nur den Spaltennamen zurück, also nicht verwirren lassen.
Also ich brauch es dann als string.

Vielen Dank im Voraus,
David


Edit: Ist eine MSSQL Datenbank und ich habe Delphi 7
davidbaumann Threadstarter
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 39

Win XP
D7PE
BeitragVerfasst: Fr 19.08.05 16:43 
Ich brauche wirklich eure Hilfe, sonst ist mein ganzes Wochenende futsch und ich kann auf der Lanparty Delphi programmieren (davon habe ich schon immer mal geträumt)

MfG,
Baumi
rochus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Fr 19.08.05 16:50 
Hallo.
Ich wüsste nicht, wie das so gehen sollte - zumindest nutze ich lieber den umweg über einen MemoryStream/Blobstream.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  MS: TMemoryStream;
begin
  { ... }
  MS := DeineQuery.CreateBlobStream(Deinequery.FieldByName('Feldname')) AS TMemoryStream;
  { do something with MS }

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
rochus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Fr 19.08.05 16:52 
Wobei mir gerade noch merkwürdig scheint:

du möchtest aus der Datenbank ein insertskript haben. Wozu? wenn du von der einen Tabelle in die andere schreiben möchtest geht das auch so:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
INSERT INTO TabellenName(Feld1, Feld2, Feld3, ... FeldN)
SELECT Feld1
     , Feld2
     , Feld3
     , ...
     , FeldN
FROM AndereTabelle

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
rochus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Fr 19.08.05 16:55 
Und hier vielleicht noch was, das dir helfen könnte:
www.elists.org/piper...eptember/006275.html

gefunden durch:
Suche bei Google TADOQUERY INSERT BLOB

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
davidbaumann Threadstarter
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 39

Win XP
D7PE
BeitragVerfasst: Fr 19.08.05 17:17 
Ok, vielen Dank erstmal.
Die erste Lösung hört sich schon mal gut an, ich hoffe mal das hilft mir irgendwie...
Das Script soll zB beim Kunden erstellt werden, wenn wir nen Datenkbankabzug haben wollen oder wenn wir ein Script für einen Installer schreiben.
MfG,
Baumi