![]() |
Datenbank: Access • Version: 2000 • Zugriff über: BDE
TQuery --> SQL BEfehler ausführen --> Fehler
Hallo,
ich versuche mit einer TQuery Komponente SQL Befehle Auszuführen. Ich versuche eine Tabelle in eine DB zu erstellen. Das machen ich so
Delphi-Quellcode:
Die Tabelle wird auch in der DB erstellt, aber es kommt trotzdem eine Fehlermeldung.
procedure TForm1.Button1Click(Sender: TObject);
begin Query1.Active:=False; Query1.DatabaseName:='Christian'; Query1.SQL.Clear; Query1.SQL.Add('CREATE TABLE Hallo2'); Query1.SQL.Add('('); Query1.SQL.Add('Idx Integer'); Query1.SQL.Add(')'); Query1.Active:=True; end; Fehler: Fehler beim erstellen der Cursor-Handle. |
Re: TQuery --> SQL BEfehler ausführen --> Fehler
so mal völlig ins blaue reingedacht: wie ist es mit ExecSQL?
|
Re: TQuery --> SQL BEfehler ausführen --> Fehler
Zitat:
mfg christian18 |
Re: TQuery --> SQL BEfehler ausführen --> Fehler
Nachdem du die Parameter für die Query gesetzt hast, mußt du sie mit ExecSQL ausführen...
Und was für eine Fehlermeldung kommt? |
Re: TQuery --> SQL BEfehler ausführen --> Fehler
Zitat:
hier der fehler hatte ich oben aber schon geschrieben: Fehler: Fehler beim erstellen der Cursor-Handle. |
Re: TQuery --> SQL BEfehler ausführen --> Fehler
[quote="Christian18"]
Zitat:
Hi, wenn ich Query1.ExecSQL; mache, dann kommt kein Fehler. --> funktioniert danke. Kann ich so auch eine Access DB erstellen??? wenn ja wie??? |
Re: TQuery --> SQL BEfehler ausführen --> Fehler
Ups. Fehler hatte ich irgendwie übersehen.
Bin mir nicht sicher, ob man mit nem Query eine DB erstellen kann, da das Teil ja an ne DB gebunden ist. (Blöd ausgedrückt, ich weiß :) ) Probier doch einfach mal "CREATE DATABASE..." und die entsprechenden Parameter (User, PW, Charset, etc.) für Access-DB. |
Re: TQuery --> SQL BEfehler ausführen --> Fehler
Zitat:
mfg christina18 |
Re: TQuery --> SQL BEfehler ausführen --> Fehler
z.b. so:
SQL-Code:
Ist allerdings für ne Firebird-DB. Wie es bei Access genau aussieht, weiß ich auch nicht, aber so ähnlich sollte es es sein :)
SET SQL DIALECT 3;
SET NAMES ISO8859_1; CREATE DATABASE 'C:\Database\Repa\REPA1.FDB' USER 'username' PASSWORD 'passwort' PAGE_SIZE 4096 DEFAULT CHARACTER SET ISO8859_1; |
Re: TQuery --> SQL BEfehler ausführen --> Fehler
Ich würde einfach die Komponente TTable nehmen.
Da kannst du dann im Objektinspektor alles einstellen, was für ne Tabelle du willst und wie die aussehen soll. wenn du das gemacht hast benutzt du einfach den befehl
Delphi-Quellcode:
diese Tabelle wird dann erstellt und du kannst dann auch mit SQL mit der arbeiten.
Table1.CreateTable;
Z.B das in die eigenschaft TQuery1.SQL reinschreiben: SELECT ... FROM "Tabellenname" WHERE ... |
Re: TQuery --> SQL BEfehler ausführen --> Fehler
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; |
Re: TQuery --> SQL BEfehler ausführen --> Fehler
Hallo,
ich habe mein Fehler schon selber gefunden. Es lag an meinen Verwendeten Namen für die Tabelle die erzeugt werden sollte. Mann sollte keine Punkte (.) in den Tabellen Namen verwenden. MFG Christian18 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 Uhr. |
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 by Thomas Breitkreuz