Einzelnen Beitrag anzeigen

Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#11

Re: TQuery --> SQL BEfehler ausführen --> Fehler

  Alt 3. Jan 2006, 13:45
Hallo,

ich habe jetzt ein neues Probelem, was aber damit zu tun hat. Ich bin gerade dabei ein kleines Programm zu schreiben was mir Paradox 7 Tabellen in eine Access DB Konvertiert. Der flogende Code funktioniert soweit ganz gut, aber es wird die Tabelle DB in der Datenbank Kinder.mdb erstellt. Das soll aber anderesrum sein. Also die Tabelle Kinder in der db.mdb. Ich kann bei mir aber auch keinen Fehler finden. Könnt ihr mir helfen??? Hier ist mein Quellcode:

Delphi-Quellcode:
procedure TFMain.BitBtn1Click(Sender: TObject);
  var i : Integer; // Schleifenvariable
      q : TQuery; // für SQL Anweisungen
      j : Integer; // Schleifenvariable
      t : TTable; // Table
      s : String; // Daten Typ
begin
  if ListBox1.Items.Count = 0 then
    begin
      ShowMessage('Bitte füllen Sie erst die Liste mit den Quellen.');
    end
  else
    begin
      if Edit1.Text = 'then
        begin
          ShowMessage('Bitte wählen Sie erst eine Ziel Datenbank aus.');
        end
      else
        begin
          for i:=1 to ListBox1.Items.Count do
            begin
              q:=TQuery.Create(self);
              q.DatabaseName:='Christian';
              q.SQL.Clear;
              q.SQL.Add('Create Table ' + ExtractFileName(ListBox1.Items[ListBox1.ItemIndex]));
              q.SQL.Add('(');
              t:=TTable.Create(self);
              t.Active:=False;
              t.TableName:=ListBox1.Items[ListBox1.ItemIndex];
              t.Active:=True;
              for j:=0 to t.FieldCount - 1 do
                begin
                  case t.FieldDefList.FieldDefs[j].DataType of
                    ftAutoInc : s:='Counter';
                    ftString : s:='Char(' + IntToStr(t.FieldDefList.FieldDefs[j].Size) + ')';
                    ftInteger : s:='Integer';
                    ftFloat : s:='Float';
                    ftMemo : s:='Memo';
                    ftDate : s:='Date';
                    ftTime : s:='Date';
                    ftDateTime : s:='Date';
                  end;
                  if j = t.FieldCount - 1 then
                    begin
                      q.SQL.Add(t.FieldDefList.FieldDefs[j].Name + ' ' + s);
                    end
                  else
                    begin
                      q.SQL.Add(t.FieldDefList.FieldDefs[j].Name + ' ' + s + ',');
                    end;
                end;
              //t.Free;
              q.SQL.Add(')');
              Memo1.Clear;
              Memo1.Lines.Add(q.SQL.GetText);
              q.ExecSQL;
              //q.Free;
            end;
        end;
    end;
end;
  Mit Zitat antworten Zitat