Autor Beitrag
sunshineh
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: So 01.06.08 17:43 
Hallo,
ich habe ein variables StringGrid und möchte nun nach diesem StringGrid eine OracleTabelle erstellen.

Bei einer konstanten Tabelle habe ich es bis jetzt immer so gemacht:
ausblenden Delphi-Quelltext
1:
2:
SQLQuery.SQL.Text := 'CREATE TABLE '+Tab_Name.Text+' (Time TIMESTAMP, S1_1 VARCHAR2 (4000))';
SQLQuery.ExecSQL;

und es hat wunderbar funktioniert!

Nun wollte ich es mit dem StringGrid wie folgt machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
SQLQuery.SQL.Text := 'CREATE TABLE '+Tab_Name.Text+'(Time TIMESTAMP)';
SQLQuery.ExecSQL;
for I := 0 to IntForm - 1 do
begin
  speicher := StringGrid1.Cells[I,0];
  SQLQuery.SQL.Text := 'ALTER TABLE  '+Tab_Name.Text+'_timedepend ADD ('+speicher+'   
  VARCHAR2 (4000))'
;
  SQLQuery.ExecSQL;
end;


So funktioniert es aber nicht, es wird die Tabelle nicht mal erstellt!!
Was mache ich nur falsch?!!!

Gruß und Danke,

sunshineh

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
bflegel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: So 01.06.08 19:19 
Hallo sunshineh,

mir fallen da 3 Dinge auf:

1. Ist die Variable IntForm deklariert/zugewiesen? Ich gehe davon aus dass Du anhand der Anzahl der Spalten im Stringgrid jeweils eine Spalte in einer neuen Tabelle erzeugen möchtest:

ausblenden Delphi-Quelltext
1:
2:
IntForm := Stringgrid1.ColCount - 1// oder einfach
for I := 0 to Stringgrid1.ColCount - 1 do


2. Kann man mit "ALTER TABLE" auch eine neue Tabelle erzeugen, wenn sie noch nicht vorhanden ist?

3. Fehlt beim SQL-Statement nicht noch ein Strichpunkt?

ausblenden Delphi-Quelltext
1:
2:
  SQLQuery.SQL.Text := 'ALTER TABLE  '+Tab_Name.Text+'_timedepend ADD ('+speicher+'   
  VARCHAR2 (4000))<span style="color: violet">;</span>'
;


bye
bflegel

_________________
I know all the jokes about my name
sunshineh Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: So 01.06.08 20:23 
DANKE!!

Habs nun so gemacht und nun funktionierts!!!

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
SQLStatement := 'Create Table '+Tab_Name.Text+'_timedepend (Time TIMESTAMP ';
    for I := 0 to StringGrid1.RowCount - 1 do
SQLStatement := SQLStatement+', ' +StringGrid1.Cells[0,I]+ ' VARCHAR2 (4000)';
SQLStatement := SQLStatement+')';
SQLQuery.SQL.Text := SQLStatement;
SQLQuery.ExecSQL;
,