![]() |
wie schreibe ich daten in eine paradox7 tabelle?
Ich habe ein Problem.
ich möchte folgende variabelen in eine paradox7 tabelle schreiben:
Code:
die nme variable kommt aus einer combobox. desweiteren sollen die makierten radiobuttons aus der dbradiogroup in die tabelle eingetragen werden. wie kann ich dieses realisieren. desweiteren kann ich im moment keinen der radiobuttons auswählen... ich habe den kompletten src mal ebn angehängt für euch. thx schonmal
wupb1, wupb2, wupb3, wupb4, wupb1d, wupb2d, wupb3d, wupb4d, wupgesd, wupges, name
felix
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DBCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Edit7: TEdit; Edit8: TEdit; Edit9: TEdit; Edit10: TEdit; Label10: TLabel; Edit11: TEdit; ComboBox1: TComboBox; Button3: TButton; DBRadioGroup1: TDBRadioGroup; DBRadioGroup2: TDBRadioGroup; DBRadioGroup3: TDBRadioGroup; DBRadioGroup4: TDBRadioGroup; procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var wupb1, wupb2, wupb3, wupb4, wupb1d, wupb2d, wupb3d, wupb4d, wupgesd, wupges: integer; begin //Einlesen der Variablen wupb1 := StrToInt(Edit2.Text); wupb2 := StrToInt(Edit3.Text); wupb3 := StrToInt(Edit4.Text); wupb4 := StrToInt(Edit5.Text); wupb1d := StrToInt (Edit7.Text); wupb2d := StrToInt (Edit8.Text); wupb3d := StrToInt (Edit9.Text); wupb4d := StrToInt (Edit10.Text); //Abzüge pro Bahn //Bahn1 case DBRadioGroup1.ItemIndex of 0 : wupb1 := wupb1 - 1; 1 : wupb1 := wupb1 - 2; 2 : wupb1 := wupb1 - 5; end; //Bahn2 case DBRadioGroup2.ItemIndex of 0 : wupb2 := wupb2 - 1; 1 : wupb2 := wupb2 - 2; 2 : wupb2 := wupb2 - 5; end; //Bahn3 case DBRadioGroup3.ItemIndex of 0 : wupb3 := wupb3 - 1; 1 : wupb3 := wupb3 - 2; 2 : wupb3 := wupb3 - 5; end; //Bahn4 case DBRadioGroup4.ItemIndex of 0 : wupb4 := wupb4 - 1; 1 : wupb4 := wupb4 - 2; 2 : wupb4 := wupb4 - 5; end; //Drops pro Bahn incl. Zuzüge wupb1 := (wupb1d * 2) + wupb1; wupb2 := (wupb2d * 2) + wupb2; wupb3 := (wupb3d * 2) + wupb3; wupb4 := (wupb4d * 2) + wupb4; //GesamtDrops wupgesd := wupb1d + wupb2d + wupb3d + wupb4d; //GesamtSchläge incl. Abzüge wupges := wupb1 + wupb2 + wupb3 + wupb4; //Ausgabe - Gesamt Drops Edit11.Text := IntToStr(wupgesd); //Ausgabe - Gesamt Schläge incl. Zu-/Abzüge Edit6.Text := IntToStr(wupges); end; procedure TForm1.Button3Click(Sender: TObject); var name: string[15]; f :textfile; begin //Name aus ComboBox einlesen case combobox1.itemIndex of 0 : name := 'Felixxx'; 1 : name := 'Katja'; 2 : name := 'Lenni'; 3 : name := 'Markus'; 4 : name := 'Oli'; 5 : name := 'Peter'; 6 : name := 'Rase'; 7 : name := 'Togi'; 8 : name := 'Wasi'; end; //In Datei schreiben AssignFile(f,'erg_wup.txt'); {$i-} Append(f); {$i+} if IOResult <> 0 then halt; Writeln(f,name + ',' + Edit2.Text + ',' + Edit7.Text + ',' + Edit3.Text + ',' + Edit8.Text + ',' + Edit4.Text + ',' + Edit9.Text + ',' + Edit5.Text + ',' + Edit10.Text + ',' + Edit6.Text + ',' + Edit11.Text); CloseFile(f) end; end. |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Herzlich willkommen bei Delphi-Praxis :D
Daten kannst du folgendermaßen in eine Tabelle eintragen. 1. Erstell dir eine Query. Du findest sie in der Komponentenleiste unter "Datenzugriff" 2. Füge die Datensätze mit Hilfe einer SQl-Anweisung in die Tabelle ein:
Delphi-Quellcode:
...
var MyQuery: TQuery; procedure PEinlesen; var StrTable: String; // Pfad und Name der Tabelle begin StrTable := ExtractFilePath(ParamStr(0)) + 'MeineTabelle.dbf'; // Datensätze mit Query einfügen with MyQuery do begin clear; Sql.Close; Sql.Add('Insert into "' + StrTable + '" values (' + IntToStr(wupb1) + ', ' + IntToStr(wupb2) + ', ' ... + ')'); // Statt den Punkten die weiteren Variablen einsetzen ExecSql; end; end; |
Re: wie schreibe ich daten in eine paradox7 tabelle?
thx. ich probiers eben mal aus....
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
Wenn es Probleme gibt, ich bin die ganze Zeit online ;)
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
Code:
gibt der mir nun aus.
[Fehler] Unit1.pas(152): Undefinierter Bezeichner: 'clear'
[Fehler] Unit1.pas(153): Undefinierter Bezeichner: 'Close' [Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden die db liegt in /db/abzuege.db |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Poste bitte mal den Quelltext der Einfügeprozedur.
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DBCtrls, DB, DBTables; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Edit7: TEdit; Edit8: TEdit; Edit9: TEdit; Edit10: TEdit; Label10: TLabel; Edit11: TEdit; ComboBox1: TComboBox; Button3: TButton; DBRadioGroup1: TDBRadioGroup; DBRadioGroup2: TDBRadioGroup; DBRadioGroup3: TDBRadioGroup; DBRadioGroup4: TDBRadioGroup; Query1: TQuery; procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; MyQuery: TQuery; wupb1, wupb2, wupb3, wupb4, wupb1d, wupb2d, wupb3d, wupb4d, wupgesd, wupges: integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin //Einlesen der Variablen wupb1 := StrToInt(Edit2.Text); wupb2 := StrToInt(Edit3.Text); wupb3 := StrToInt(Edit4.Text); wupb4 := StrToInt(Edit5.Text); wupb1d := StrToInt (Edit7.Text); wupb2d := StrToInt (Edit8.Text); wupb3d := StrToInt (Edit9.Text); wupb4d := StrToInt (Edit10.Text); //Abzüge pro Bahn //Bahn1 case DBRadioGroup1.ItemIndex of 0 : wupb1 := wupb1 - 1; 1 : wupb1 := wupb1 - 2; 2 : wupb1 := wupb1 - 5; end; //Bahn2 case DBRadioGroup2.ItemIndex of 0 : wupb2 := wupb2 - 1; 1 : wupb2 := wupb2 - 2; 2 : wupb2 := wupb2 - 5; end; //Bahn3 case DBRadioGroup3.ItemIndex of 0 : wupb3 := wupb3 - 1; 1 : wupb3 := wupb3 - 2; 2 : wupb3 := wupb3 - 5; end; //Bahn4 case DBRadioGroup4.ItemIndex of 0 : wupb4 := wupb4 - 1; 1 : wupb4 := wupb4 - 2; 2 : wupb4 := wupb4 - 5; end; //Drops pro Bahn incl. Zuzüge wupb1 := (wupb1d * 2) + wupb1; wupb2 := (wupb2d * 2) + wupb2; wupb3 := (wupb3d * 2) + wupb3; wupb4 := (wupb4d * 2) + wupb4; //GesamtDrops wupgesd := wupb1d + wupb2d + wupb3d + wupb4d; //GesamtSchläge incl. Abzüge wupges := wupb1 + wupb2 + wupb3 + wupb4; //Ausgabe - Gesamt Drops Edit11.Text := IntToStr(wupgesd); //Ausgabe - Gesamt Schläge incl. Zu-/Abzüge Edit6.Text := IntToStr(wupges); end; procedure TForm1.Button3Click(Sender: TObject); var name: string[15]; f :textfile; begin //Name aus ComboBox einlesen case combobox1.itemIndex of 0 : name := 'Felixxx'; 1 : name := 'Katja'; 2 : name := 'Lenni'; 3 : name := 'Markus'; 4 : name := 'Oli'; 5 : name := 'Peter'; 6 : name := 'Rase'; 7 : name := 'Togi'; 8 : name := 'Wasi'; end; //In Datei schreiben AssignFile(f,'erg_wup.txt'); {$i-} Append(f); {$i+} if IOResult <> 0 then halt; Writeln(f,name + ',' + Edit2.Text + ',' + Edit7.Text + ',' + Edit3.Text + ',' + Edit8.Text + ',' + Edit4.Text + ',' + Edit9.Text + ',' + Edit5.Text + ',' + Edit10.Text + ',' + Edit6.Text + ',' + Edit11.Text); CloseFile(f) end; procedure PEinlesen; var StrTable: String; // Pfad und Name der Tabelle begin StrTable := ExtractFilePath(ParamStr(0)) + 'db/abzuege.db'; // Datensätze mit Query einfügen with MyQuery do begin clear; Sql.Close; Sql.Add('Insert into "' + StrTable + '" values (' + IntToStr(wupb1) + ', ' + IntToStr(wupb1d) + ', ' + IntToStr(wupb2) + ', ' + IntToStr(wupb2d) + ', ' + IntToStr(wupb3) + ', ' + IntToStr(wupb3d) + ', ' + IntToStr(wupb4) + ', ' + IntToStr(wupb4d) + ')'); // Statt den Punkten die weiteren Variablen einsetzen ExecSql; end; end; end. |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Du musst die Query1 verwenden, nicht MyQuery. Diese Variable habe ich in meinem Beispiel nur eingebaut, um zu zeigen, dass es ein Objekt von TQuery sein muss. MyQuery kannst du löschen und statt dessen in der With-Anweisung Query1 benutzen. Ändere das mal.
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
Delphi-Quellcode:
da kommen immernoch dieselben fehler....mist...
procedure PEinlesen;
var StrTable: String; // Pfad und Name der Tabelle begin StrTable := ExtractFilePath(ParamStr(0)) + 'db/abzuege.db'; // Datensätze mit Query einfügen with Query1 do begin clear; Sql.Close; Sql.Add('Insert into "' + StrTable + '" values (' + IntToStr(wupb1) + ', ' + IntToStr(wupb1d) + ', ' + IntToStr(wupb2) + ', ' + IntToStr(wupb2d) + ', ' + IntToStr(wupb3) + ', ' + IntToStr(wupb3d) + ', ' + IntToStr(wupb4) + ', ' + IntToStr(wupb4d) + ')'); // Statt den Punkten die weiteren Variablen einsetzen ExecSql; end; end; |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Okay mein Fehler. Es heißt richtig:
Delphi-Quellcode:
War meine Dummheit :roll:
with Query1 do
begin Close; Sql.Clear; ... end; |
Re: wie schreibe ich daten in eine paradox7 tabelle?
mal eben was anderes:
was ich überhaupt machen will mit dem prog und der db: ich will ein scoreboard machen. duchr ine combobox wählt man den namen des spielers aus. dann gibt man die punkte ein, die der spieler auf jeder bahn gemacht hat. mann git ebenfalls die anzahl der drops poro bahn ein. durch die radiogruppe wählt man den abschluss der bahn ein und bekomt entsprechende anzüge. in der datenbank sollen dann NAME, Schläge pro bahn, drops pro bahn und der etsprechnde abschluss stehen. |
Re: wie schreibe ich daten in eine paradox7 tabelle?
ggg@deine 'dummheit'.
also der startet das prog nun. aber er schreibt nüx in die tabelle rein. liegt es evtl daran, dass die tabelle andere feldnamen hat, wie z.b. Name, Bahn1, Bahn1Drop etc...??? |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Ich erkläre dir mal schnell den SQl-Befehl.
Insert fügt Datensätze in eine Tabelle ein. Die Syntax lautet:
Delphi-Quellcode:
Das gilt nur, wenn du alle Felder der Tabelle ausfüllen willst. Sonst sieht die Syntax folgendermaßen aus.
Insert into <Tabellenname> values (Wert1, Wert2, Wert, ...)
Delphi-Quellcode:
Dabei wird Wert1 in Feld1 eingetragen, Wert2 in Feld2, usw.
Insert into <Tabellenname> (Feld1, Feld2, Feld, ...) values (Wert1, Wert2, Wert, ...)
Vielleicht hilft dir das jetzt weiter, falls du nicht jedes Feld ausfüllen möchtest. Damit verabschiede ich mich in die Mittagspause. Ich bin in einer halben Stunde wieder online. |
Re: wie schreibe ich daten in eine paradox7 tabelle?
n guten hunger erstmal noch *g*
Delphi-Quellcode:
so sieht das erstmal aus. hb die 2te syntax genommen. wie kann ich aber nun den namen aus der combobox und NICHT die id in die tabelle eintragen? bzw wie kann ich bei der dbradiogroup den makierten radiobutton herausfinden und ebenfalls richtig zuordnen?
begin
StrTable := ExtractFilePath(ParamStr(0)) + 'db/db.db'; // Datensätze mit Query einfügen with Query1 do begin Close; Sql.Clear; // in Tabelle schreiben Sql.Add('Insert into "' + StrTable + '" (Ort ', ' + Datum + ', ' + Name + ', ' + Bahn1 + ', ' + Bahn1Ab + ', ' + Bahn1Drops + ', ' + Bahn2 + ', ' + Bahn2Ab + ', ' + Bahn2Drops + ', ' + Bahn3 + ', ' + Bahn3Ab + ', ' + Bahn3Drops + ', ' + Bahn4 + ', ' + Bahn4Ab + ', ' + Bahn4Drops + ', ' + GesDrops + ', ' + GesSL + ', ' ', ' + GesGT + ', ' ', ' + GesEL + ', ' + Gesamt + ') values (' + ORT + ', ' + DATUM + ', ' + NAME + ', ' + IntToStr(wupb1) + ', ' + wupb1ab + ', ' + IntToStr(wupb1d) + ', ' + IntToStr(wupb2) + ', ' + wupb2ab + ', ' + IntToStr(wupb2d) + ', ' + IntToStr(wupb3) + ', ' + wupb3ab + ', ' + IntToStr(wupb3d) + ', ' + IntToStr(wupb4) + ', ' + wupb4ab + ', ' + IntToStr(wupb4d) ', ' + IntToStr(wupgesd) + ', ' + GesSL + ', ' ', ' + GesGT + ', ' ', ' + GesEL + ', ' + IntToStr(wupges) + ')'); ExecSql; end; end; ps: die GROßGESCHRIEBENEN var's sind noch net definiert (in der insert into klammer). |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Zitat:
Mit folgender Syntax kommst du an den gewählten Eintrag in der Combobox:
Delphi-Quellcode:
ComboBox1.Items.Strings[ComboBox1.ItemIndex]
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
also: inttostr(ComboBox1.Items.Strings[ComboBox1.ItemIndex]) ??? muss ich dann einsetzen?
DIESES PROB hat sich erledigt.... aber eine sache wäre da noch *nerv* ;) :wiejetzt: beim compilieren sagt der mir immer:
Code:
nur is mir noch unklar wo da was zuviel ist, oder wo da was fehlt. hiernochmal der src:
[Fehler] Unit1.pas(150): Zu viele Parameter
[Fehler] Unit1.pas(150): Operator oder Semikolon fehlt [Fehler] Unit1.pas(150): Nicht abgeschlossener String [Fehler] Unit1.pas(151): Operator oder Semikolon fehlt
Delphi-Quellcode:
procedure PEinlesen;
var StrTable: String; begin StrTable := ExtractFilePath(ParamStr(0)) + 'db/db.db'; // Datensätze mit Query einfügen with Query1 do begin Close; Sql.Clear; // in Tabelle schreiben Sql.Add('Insert into "' + StrTable + '" (Ort ', ' + Datum + ', ' + Name + ', ' + Bahn1 + ', ' + Bahn1Ab + ', ' + Bahn1Drops + ', ' + Bahn2 + ', ' + Bahn2Ab + ', ' + Bahn2Drops + ', ' + Bahn3 + ', ' + Bahn3Ab + ', ' + Bahn3Drops + ', ' + Bahn4 + ', ' + Bahn4Ab + ', ' + Bahn4Drops + ', ' + GesDrops + ', ' + GesSL + ', ' ', ' + GesGT + ', ' ', ' + GesEL + ', ' + Gesamt + ') values (' + ComboBox2.Items.Strings[ComboBox2.ItemIndex] + ', ' + DATUM + ', ' + ComboBox1.Items.Strings[ComboBox1.ItemIndex] + ', ' + IntToStr(wupb1) + ', ' + wupb1ab + ', ' + IntToStr(wupb1d) + ', ' + IntToStr(wupb2) + ', ' + wupb2ab + ', ' + IntToStr(wupb2d) + ', ' + IntToStr(wupb3) + ', ' + wupb3ab + ', ' + IntToStr(wupb3d) + ', ' + IntToStr(wupb4) + ', ' + wupb4ab + ', ' + IntToStr(wupb4d) ', ' + IntToStr(wupgesd) + ', ' + GesSL + ', ' ', ' + GesGT + ', ' ', ' + GesEL + ', ' + IntToStr(wupges) + ')'); ExecSql; end; end; |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Das IntToStr kannst du dir sparen, weil in der Combobox bereits ein String steht. Aber sonst stimmt es.
Verstehst du, was die Anweisung soll, oder soll ich sie dir erklären? |
Re: wie schreibe ich daten in eine paradox7 tabelle?
thx aner das kann ich mir denken:
ComboBox2.Items.Strings[ComboBox2.ItemIndex] der soll aus dem string, den aktuellen Index (im standartfall, wenn man nichts an der box ändert ,-1 == das was angezeigt wird) nehmen. der string besteht aus den Namen, die ich vorher über die Items definiert habe. oder etwa nicht!?!?1 |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Ja, deine Erklärung ist korrekt.
In deinem SQl-Strings fehlen einige Pluszeichen. Denk dran, dass du Variablen mit Strings verknpüfen willst. Dazwischen müssen immer Pluszeichen stehen. |
Re: wie schreibe ich daten in eine paradox7 tabelle?
so... ich hab eben nohcmal alles nachgeschaut... aber da sin ale + und ', ' drin und keins zuviel bzw zuwenig....
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
Delphi-Quellcode:
mal NUR der insert befehl
Sql.Add('Insert into "' + StrTable + '" (Ort + ', ' + Datum + ', ' + Name + ', ' + Bahn1 + ', ' + Bahn1Ab + ', ' + Bahn1Drops + ', ' + Bahn2 + ', ' + Bahn2Ab + ', ' + Bahn2Drops + ', ' + Bahn3 + ', ' + Bahn3Ab + ', ' + Bahn3Drops + ', ' + Bahn4 + ', ' + Bahn4Ab + ', ' + Bahn4Drops + ', ' + GesDrops + ', ' + GesSL + ', ' + GesGT + ', ' + GesEL + ', ' + Gesamt + ') values (' + ComboBox2.Items.Strings[ComboBox2.ItemIndex] + ', ' + {DATUM} + ', ' + ComboBox1.Items.Strings[ComboBox1.ItemIndex] + ', ' + IntToStr(wupb1) + ', ' + IntToStr(wupb1ab) + ', ' + IntToStr(wupb1d) + ', ' + IntToStr(wupb2) + ', ' + IntToStr(wupb2ab) + ', ' + IntToStr(wupb2d) + ', ' + IntToStr(wupb3) + ', ' + IntToStr(wupb3ab) + ', ' + IntToStr(wupb3d) + ', ' + IntToStr(wupb4) + ', ' + IntToStr(wupb4ab) + ', ' + IntToStr(wupb4d) + ', ' + IntToStr(wupgesd) + ', ' + {GesSL} + ', ' + {GesGT} + ', ' + {GesEL} + ', ' + IntToStr(wupges) + ')');
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
Versuch es mal damit:
Delphi-Quellcode:
Sql.Add('Insert into "' + StrTable + '" (Ort , Datum , Name, Bahn1, Bahn1Ab, Bahn1Drops, Bahn2,
'Bahn2Ab, Bahn2Drops, Bahn3, Bahn3Ab, Bahn3Drops, Bahn4, Bahn4Ab, Bahn4Drops, GesDrops, GesSL, GesGT, GesEL, Gesamt) values (' + ComboBox2.Items.Strings[ComboBox2.ItemIndex] + ', ' + DATUM + ', ' + ComboBox1.Items.Strings[ComboBox1.ItemIndex] + ', ' + IntToStr(wupb1) + ', ' + wupb1ab + ', ' + IntToStr(wupb1d) + ', ' + IntToStr(wupb2) + ', ' + wupb2ab + ', ' + IntToStr(wupb2d) + ', ' + IntToStr(wupb3) + ', ' + wupb3ab + ', ' + IntToStr(wupb3d) + ', ' + IntToStr(wupb4) + ', ' + wupb4ab + ', ' + IntToStr(wupb4d) + ', ' + IntToStr(wupgesd) + ', ' + GesSL + ', ' + ', ' + GesGT + ', ' + ', ' + GesEL + ', ' + IntToStr(wupges) + ')'); |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Moin :hi:
Habt ihr beide schon mal was von Code-formatierung gehört? Hättest du dein SQL-Statement besser formatiert (bei der Spaltenanzahl ein Muss!!!), hättest du zum Bleistift ein paar doppelte "," bemerkt. Warum eigentlich das?
Delphi-Quellcode:
So ist es doch viel einfacher (und es funktioniert :wink: ) :
...'Ort ', ' + Datum + ', ' + Name + ', ...
Delphi-Quellcode:
Ich habe mal schnell deinen Code etwas umformatiert.
...'Ort, Datum, Name ...
Da ich ein paar Stellen geändert habe, kann es sein, dass er von dir korrigiert werden muss.
Delphi-Quellcode:
Edit: Ein Haufen Tippfehler und Doppelpunkte in der Parameterzuweisung...
With Query1 Do
Begin SQL.Text := 'Insert INTO ' + StrTable + #10 + ' (Ort' + #10 + ' ,Datum' + #10 + ' ,Name' + #10 + ' ,Bahn1' + #10 + ' ,Bahn1Ab' + #10 + ' ,Bahn1Drops' + #10 + ' ,Bahn2' + #10 + ' ,Bahn2Ab' + #10 + ' ,Bahn2Drops' + #10 + ' ,Bahn3' + #10 + ' ,Bahn3Ab' + #10 + ' ,Bahn3Drops' + #10 + ' ,Bahn4' + #10 + ' ,Bahn4Ab' + #10 + ' ,Bahn4Drops' + #10 + ' ,GesDrops' + #10 + ' ,GesSL' + #10 + ' ,GesGT' + #10 + ' ,GesEL' + #10 + ' ,Gesamt)' + #10 + 'VALUES' + #10 + ' (:i_Ort' + #10 + ' ,:i_Datum' + #10 + ' ,:i_Name' + #10 + ' ,:i_Bahn1' + #10 + ' ,:i_Bahn1Ab' + #10 + ' ,:i_Bahn1Drops' + #10 + ' ,:i_Bahn2' + #10 + ' ,:i_Bahn2Ab' + #10 + ' ,:i_Bahn2Drops' + #10 + ' ,:i_Bahn3' + #10 + ' ,:i_Bahn3Ab' + #10 + ' ,:i_Bahn3Drops' + #10 + ' ,:i_Bahn4' + #10 + ' ,:i_Bahn4Ab' + #10 + ' ,:i_Bahn4Drops' + #10 + ' ,:i_GesDrops' + #10 + ' ,:i_GesSL' + #10 + ' ,:i_GesGT' + #10 + ' ,:i_GesEL' + #10 + ' ,:i_Gesamt)'; Prepared := True; With Params Do Begin ParamByName('i_Ort') .AsString := ORT; // Ich nahm an, dass DATUM in der Tabelle ein Datumsfeld ist ParamByName('i_DATUM') .AsDateTime := DATUM ; ParamByName('i_NAME') .AsString := NAME ; ParamByName('i_Bahn1') .AsInteger := wupb1; ParamByName('i_Bahn1Ab') .AsString := wupb1ab; ParamByName('i_Bahn1Drops').AsInteger := wupb1d; ParamByName('i_Bahn2') .AsInteger := wupb2; ParamByName('i_Bahn2Ab') .AsString := wupb2ab; ParamByName('i_Bahn2Drops').AsInteger := wupb2d; ParamByName('i_Bahn3') .AsInteger := wupb3; ParamByName('i_Bahn3Ab') .AsString := wupb3ab; ParamByName('i_Bahn3Drops').AsInteger := wupb3d; ParamByName('i_Bahn4') .AsInteger := wupb4; ParamByName('i_Bahn4Ab') .AsString := wupb4ab; ParamByName('i_Bahn4Drops').AsInteger := wupb4d; ParamByName('i_GesDrops') .AsInteger := wupgesd; ParamByName('i_GesSL') .AsString := GesSL; ParamByName('i_GesGT') .AsString := GesGT; ParamByName('i_GesEL') .AsString := GesEL; ParamByName('i_Gesamt') .AsInteger := wupges; End; ExecSQL; End; Edit 573 ( :mrgreen: ) : Noch ein Doppelpunkt |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Code:
sagt der mir nun... man is das kagge....
[Fehler] Unit1.pas(150): ')' erwartet, aber Bezeichner 'ComboBox2' gefunden
kann ich di das project mal schicken??? |
Re: wie schreibe ich daten in eine paradox7 tabelle?
thx robert. ich probier es gleich mal aus und ja, bei dem feld datum soll das datum rein, das der user dan auswählt
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
also ich kann das programm nun endlich wieder starten, aber es trägt nix in die db ein.
wenn ich mir die mit dem tool dboberfläche anzeige, stehen da keine einträge. |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Wie sieht denn dein Quelltext jetzt aus?
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
Delphi-Quellcode:
ist nun e erstmal der code....
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DBCtrls, DB, DBTables, ComCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Edit9: TEdit; Edit10: TEdit; Edit11: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; ComboBox1: TComboBox; ComboBox2: TComboBox; DBRadioGroup1: TDBRadioGroup; DBRadioGroup2: TDBRadioGroup; DBRadioGroup3: TDBRadioGroup; DBRadioGroup4: TDBRadioGroup; Query1: TQuery; DateTimePicker1: TDateTimePicker; Label12: TLabel; Label13: TLabel; procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Query1: TQuery; datum, wupb1, wupb2, wupb3, wupb4, wupb1d, wupb2d, wupb3d, wupb4d, wupb1ab, wupb2ab, wupb3ab, wupb4ab, wupgesd, wupsl, wupgt, wupel, wupges: integer; ort, name: string[50]; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin //Einlesen der Variablen wupb1 := StrToInt(Edit2.Text); wupb2 := StrToInt(Edit3.Text); wupb3 := StrToInt(Edit4.Text); wupb4 := StrToInt(Edit5.Text); wupb1d := StrToInt (Edit7.Text); wupb2d := StrToInt (Edit8.Text); wupb3d := StrToInt (Edit9.Text); wupb4d := StrToInt (Edit10.Text); //Abzüge pro Bahn //Bahn1 case DBRadioGroup1.ItemIndex of 0 : wupb1 := wupb1 - 1; 1 : wupb1 := wupb1 - 2; 2 : wupb1 := wupb1 - 5; end; //Bahn2 case DBRadioGroup2.ItemIndex of 0 : wupb2 := wupb2 - 1; 1 : wupb2 := wupb2 - 2; 2 : wupb2 := wupb2 - 5; end; //Bahn3 case DBRadioGroup3.ItemIndex of 0 : wupb3 := wupb3 - 1; 1 : wupb3 := wupb3 - 2; 2 : wupb3 := wupb3 - 5; end; //Bahn4 case DBRadioGroup4.ItemIndex of 0 : wupb4 := wupb4 - 1; 1 : wupb4 := wupb4 - 2; 2 : wupb4 := wupb4 - 5; end; //Drops pro Bahn incl. Zuzüge wupb1 := (wupb1d * 2) + wupb1; wupb2 := (wupb2d * 2) + wupb2; wupb3 := (wupb3d * 2) + wupb3; wupb4 := (wupb4d * 2) + wupb4; //GesamtDrops wupgesd := wupb1d + wupb2d + wupb3d + wupb4d; //GesamtSchläge incl. Abzüge wupges := wupb1 + wupb2 + wupb3 + wupb4; //Ausgabe - Gesamt Drops Edit11.Text := IntToStr(wupgesd); //Ausgabe - Gesamt Schläge incl. Zu-/Abzüge Edit6.Text := IntToStr(wupges); name := ComboBox1.Items.Strings[ComboBox1.ItemIndex]; ort := ComboBox2.Items.Strings[ComboBox2.ItemIndex]; wupb1ab := 1; wupb2ab := 1; wupb3ab := 1; wupb4ab := 1; wupsl := 1; wupel := 1; wupgt := 1; datum := 1; end; procedure TForm1.Button3Click(Sender: TObject); var f :textfile; begin //In Datei schreiben AssignFile(f,'erg_wup.txt'); {$i-} Append(f); {$i+} if IOResult <> 0 then halt; Writeln(f,ComboBox2.Items.Strings[ComboBox2.ItemIndex] + ',' + ComboBox1.Items.Strings[ComboBox1.ItemIndex] + ',' + Edit2.Text + ',' + Edit7.Text + ',' + Edit3.Text + ',' + Edit8.Text + ',' + Edit4.Text + ',' + Edit9.Text + ',' + Edit5.Text + ',' + Edit10.Text + ',' + Edit6.Text + ',' + Edit11.Text); CloseFile(f) end; procedure PEinlesen; var StrTable: String; begin StrTable := ExtractFilePath(ParamStr(0)) + 'db/db.db'; // Datensätze mit Query einfügen With Query1 Do Begin SQL.Text := 'Insert INTO ' + StrTable + #10 + ' (Ort' + #10 + ' ,Datum' + #10 + ' ,Name' + #10 + ' ,Bahn1' + #10 + ' ,Bahn1Ab' + #10 + ' ,Bahn1Drops' + #10 + ' ,Bahn2' + #10 + ' ,Bahn2Ab' + #10 + ' ,Bahn2Drops' + #10 + ' ,Bahn3' + #10 + ' ,Bahn3Ab' + #10 + ' ,Bahn3Drops' + #10 + ' ,Bahn4' + #10 + ' ,Bahn4Ab' + #10 + ' ,Bahn4Drops' + #10 + ' ,GesDrops' + #10 + ' ,GesSL' + #10 + ' ,GesGT' + #10 + ' ,GesEL' + #10 + ' ,Gesamt)' + #10 + 'VALUES' + #10 + ' (:i_Ort' + #10 + ' ,:i_Datum' + #10 + ' ,:i_Name' + #10 + ' ,:i_Bahn1' + #10 + ' ,:i_Bahn1Ab' + #10 + ' ,:i_Bahn1Drops' + #10 + ' ,:i_Bahn2' + #10 + ' ,:i_Bahn2Ab' + #10 + ' ,:i_Bahn2Drops' + #10 + ' ,:i_Bahn3' + #10 + ' ,:i_Bahn3Ab' + #10 + ' ,:i_Bahn3Drops' + #10 + ' ,:i_Bahn4' + #10 + ' ,:i_Bahn4Ab' + #10 + ' ,:i_Bahn4Drops' + #10 + ' ,:i_GesDrops' + #10 + ' ,:i_GesSL' + #10 + ' ,:i_GesGT' + #10 + ' ,:i_GesEL' + #10 + ' ,:i_Gesamt)'; Prepared := True; With Params Do Begin ParamByName(':i_Ort') .AsString := ort; // Ich nahm an, dass DATUM in der Tabelle ein Datumsfeld ist ParamByName(':i_DATUM') .AsInteger := datum; ParamByName(':i_NAME') .AsString := name; ParamByName(':i_Bahn1') .AsInteger := wupb1; ParamByName(':i_Bahn1Ab') .AsInteger := wupb1ab; ParamByName(':i_Bahn1Drops').AsInteger := wupb1d; ParamByName(':i_Bahn2') .AsInteger := wupb2; ParamByName(':i_Bahn2Ab') .AsInteger := wupb2ab; ParamByName(':i_Bahn2Drops').AsInteger := wupb2d; ParamByName(':i_Bahn3') .AsInteger := wupb3; ParamByName(':i_Bahn3Ab') .AsInteger := wupb3ab; ParamByName(':i_Bahn3Drops').AsInteger := wupb3d; ParamByName(':i_Bahn4') .AsInteger := wupb4; ParamByName(':i_Bahn4Ab') .AsInteger := wupb4ab; ParamByName(':i_Bahn4Drops').AsInteger := wupb4d; ParamByName(':i_GesDrops') .AsInteger := wupgesd; ParamByName(':i_GesSL') .AsInteger := wupsl; ParamByName(':i_GesGT') .AsInteger := wupgt; ParamByName(':i_GesEL') .AsInteger := wupel; ParamByName(':i_Gesamt') .AsInteger := wupges; End; ExecSQL; End; end; end. sieht schiick aus, ist mit aber ehrlichgesagt zu lang.... aber dafür funzt es |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Du musst die Prozedur PEinlesen auch aufrufen. Sonst geschieht natürlich nichts :)
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
oops wie peinlich :oops: :wall: :roll:
aber er gibt mir trotzdem ne fehlermeldung ca so: ungültiges schlüsselwort system-string: ? zeilennummer: 1 |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Wenn du dieses BDE-Zeugs verwendest und auch noch Pfade anstatt Tabellennamen im Statement hast, dann musst du den Pfad zwischen 2 '"' setzen.
Delphi-Quellcode:
Wenn das Ganze kommerziell genutzt wird, kann ich dir nur empfehlen : Finger weg von der BDE - suche dir lieber eine "richtige" Datenbank.
'Insert INTO "' + StrTable + '"' + #10 +
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
Zitat:
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
Normalerweise sind meiner Meinung nach MS SQL Svr, Oracle, DB2, ... "richtige" DBs.
In diesem Fall wäre alles außer Paradox, MS Access oder dBase eine bessere Grunddlage. :wink: |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Aha. Gibt es für MySql vernünftige Komponenten?
|
Re: wie schreibe ich daten in eine paradox7 tabelle?
@robert: deine löung hat auch net ganz richtig gefunzt....
habs nun so gelöst:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DBCtrls, DB, DBTables, ComCtrls, Mask; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; DBRadioGroup1: TDBRadioGroup; Query1: TQuery; DBEdit1: TDBEdit; Table1: TTable; DataSource1: TDataSource; DBRadioGroup2: TDBRadioGroup; DBRadioGroup3: TDBRadioGroup; DBRadioGroup4: TDBRadioGroup; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TDBEdit; DBEdit6: TDBEdit; DBEdit7: TDBEdit; DBEdit8: TDBEdit; DBEdit9: TDBEdit; DBEdit10: TDBEdit; DBComboBox1: TDBComboBox; DBComboBox2: TDBComboBox; DBNavigator1: TDBNavigator; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Query1: TQuery; datum, wupb1, wupb2, wupb3, wupb4, wupb1d, wupb2d, wupb3d, wupb4d, wupb1ab, wupb2ab, wupb3ab, wupb4ab, wupgesd, wupsl, wupgt, wupel, wupges: integer; ort, name: string[50]; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin //Einlesen der Variablen wupb1 := StrToInt(DBEdit1.Text); wupb2 := StrToInt(DBEdit2.Text); wupb3 := StrToInt(DBEdit3.Text); wupb4 := StrToInt(DBEdit4.Text); wupb1d := StrToInt (DBEdit5.Text); wupb2d := StrToInt (DBEdit6.Text); wupb3d := StrToInt (DBEdit7.Text); wupb4d := StrToInt (DBEdit8.Text); //Abzüge pro Bahn //Bahn1 case DBRadioGroup1.ItemIndex of 0 : wupb1 := wupb1 - 1; 1 : wupb1 := wupb1 - 2; 2 : wupb1 := wupb1 - 5; end; //Bahn2 case DBRadioGroup2.ItemIndex of 0 : wupb2 := wupb2 - 1; 1 : wupb2 := wupb2 - 2; 2 : wupb2 := wupb2 - 5; end; //Bahn3 case DBRadioGroup3.ItemIndex of 0 : wupb3 := wupb3 - 1; 1 : wupb3 := wupb3 - 2; 2 : wupb3 := wupb3 - 5; end; //Bahn4 case DBRadioGroup4.ItemIndex of 0 : wupb4 := wupb4 - 1; 1 : wupb4 := wupb4 - 2; 2 : wupb4 := wupb4 - 5; end; //Drops pro Bahn incl. Zuzüge wupb1 := (wupb1d * 2) + wupb1; wupb2 := (wupb2d * 2) + wupb2; wupb3 := (wupb3d * 2) + wupb3; wupb4 := (wupb4d * 2) + wupb4; //GesamtDrops wupgesd := wupb1d + wupb2d + wupb3d + wupb4d; //GesamtSchläge incl. Abzüge wupges := wupb1 + wupb2 + wupb3 + wupb4; //Ausgabe - Gesamt Drops DBEdit10.Text := IntToStr(wupgesd); //Ausgabe - Gesamt Schläge incl. Zu-/Abzüge DBEdit9.Text := IntToStr(wupges); end; procedure TForm1.FormCreate(Sender: TObject); begin table1.Open; table1.First; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if table1.State = dsBrowse then table1.Post; table1.Close; end; end. |
Re: wie schreibe ich daten in eine paradox7 tabelle?
Ich wollte dir da auch keine "All inclusive" - Lösung posten.
Programmieren musst du es schon alleine. Es sollte dir nur eine Richtung zeigen. Denn bei Codeformatierungen wie ![]() Anhand meines Beispiels müsstest du in der Lage sein, das Ganze "vernünftig" über ein INSERT/UPDATE-Statement zu lösen. p.s. Datenänderungen über TTable ist wie Formel1 fahren mit 'ner Seifenkiste -> es geht, nur bringt es nicht viel ( :P ). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 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-2025 by Thomas Breitkreuz