Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Query aus DBEdit-Fledern bauen... (https://www.delphipraxis.net/106005-query-aus-dbedit-fledern-bauen.html)

mkinzler 4. Jan 2008 12:46

Re: Query aus DBEdit-Fledern bauen...
 
Grundsätzlich ja. Im 2. Fall musst du dich aber selber um das Einfügen in die DB kümmer

eXpli 4. Jan 2008 14:24

Re: Query aus DBEdit-Fledern bauen...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm irgendwie will das nicht funtionieren :(.

So hab ich das jetzt:
Delphi-Quellcode:
ADOConnection1.Connected := true;
QRY_InsertVocab.SQL.Text := 'INSERT INTO TabVokabeln (Vok_Deutsch, Vok_Englisch) VALUES ( :Vok_Deutsch, :Vok_Englisch);';
QRY_InsertVocab.ExecSQL;
ADOConnection1.Connected := false;
Hier der ConnectionString:
Delphi-Quellcode:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Vokabeln.mdb;Persist Security Info=False
Hier als was die DBEditBoxen definiert:
Delphi-Quellcode:
Vok_Deutsch: TDBEdit;
Vok_Englisch: TDBEdit;
Fehlen mir vllt. noch andere kompos oder so? Hmm hier mal nen screeny vllt. fällt euch was ein wie ihr das machen würdet...

mkinzler 4. Jan 2008 14:32

Re: Query aus DBEdit-Fledern bauen...
 
Diese Zeile kannst du woanders setzen, da sie nur einmal nötig ist.

Delphi-Quellcode:
QRY_InsertVocab.SQL.Text := 'INSERT INTO TabVokabeln (Vok_Deutsch, Vok_Englisch) VALUES ( :Vok_Deutsch, :Vok_Englisch);';
Delphi-Quellcode:
ADOConnection1.Connected := true; //Warum?
//Hier die werte in die Parameter schreiben:
QRY_InsertVocab.ParamByName('Vok_Deutsch').Value := Vok_Deutsch.Text;
QRY_InsertVocab.ParamByName('Vok_English').Value := Vok_English.Text;
QRY_InsertVocab.ExecSQL;
ADOConnection1.Connected := false; //Warum?
Jetzt verstehe ich deine letzte Frage: In diesem Fall wäre ein normales Edit sogar besser

eXpli 4. Jan 2008 15:04

Re: Query aus DBEdit-Fledern bauen...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm woll immer noch nicht so richtig...

hier mal meinen gesamten Code:
Delphi-Quellcode:

unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, Mask, DBCtrls;

type
  TVocabEingabe = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Vok_Deutschnn: TDBEdit;
    Vok_Englischnn: TDBEdit;
    ADOConnection1: TADOConnection;
    QRY_InsertVocab: TADOQuery;
    Vok_Deutsch: TEdit;
    Vok_Englisch: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

//  TVokabel = record
//   Vok_Deutsch: string;
//   Vok_Englisch: string;
//  end;

var
  VocabEingabe: TVocabEingabe;

implementation

{$R *.dfm}

procedure TVocabEingabe.Button1Click(Sender: TObject);
begin
// QRY_InsertVocab.SQL.Add('INSERT INTO TabVokabeln (Vok_Deutsch, Vok_Englisch) VALUES ('+quotedstr(Vok_Deutsch2.Text)+', '+quotedstr(Vok_Englisch2.Text)+');');

//QRY_InsertVocab.Parameters.ParamByName( 'Vok_Deutsch').Value := Vok_Deutsch2.Text;
//QRY_InsertVocab.Parameters.ParamByName( 'Vok_Deutsch').Value := Vok_Deutsch2.Text;
//QRY_InsertVocab.ExecSQL;

QRY_InsertVocab.Parameters.ParamByName('Vok_Deutsch').Value := Vok_Deutsch.Text;
QRY_InsertVocab.Parameters.ParamByName('Vok_Englisch').Value := Vok_Englisch.Text;
QRY_InsertVocab.ExecSQL;

QRY_InsertVocab.SQL.Text := 'INSERT INTO TabVokabeln (Vok_Deutsch, Vok_Englisch) VALUES (:Vok_Deutsch, :Vok_Englisch);';

end;

end.
jetzt kommt noch ne Fehlermeldung - siehe Anhang:

was muss ich denn jetzt verändern wenn ich werte die ich in die DB eintragen will direkt in den code eingebe - bloß um zu sehen ob überhaupt werte eingetragen werden können?

Hier mal infos über meine tabelle:
Tabellenname: TabVokabeln
Spalten: ID_Vokabeln
Vok_Deutsch
Vok_Englisch
Kategorie
Datum

Das kann noch nicht so schwer sein einfach mal daten in eine Tabelle zu bringen... oder? Ich verstehs nich... :(

Jelly 4. Jan 2008 15:11

Re: Query aus DBEdit-Fledern bauen...
 
Du versuchst die Query mit ExecSQL auszuführen, bevor du die Query überhaupt definiert hast. Das kann ja nicht klappen. Probiers mal so:
Delphi-Quellcode:
procedure TVocabEingabe.Button1Click(Sender: TObject);
begin
    QRY_InsertVocab.SQL.Text := 'INSERT INTO TabVokabeln (Vok_Deutsch, Vok_Englisch) VALUES (:Vok_Deutsch, :Vok_Englisch);';

    QRY_InsertVocab.Parameters.ParamByName('Vok_Deutsch').Value := Vok_Deutsch.Text;
    QRY_InsertVocab.Parameters.ParamByName('Vok_Englisch').Value := Vok_Englisch.Text;
    QRY_InsertVocab.ExecSQL;
end;

eXpli 4. Jan 2008 15:13

Re: Query aus DBEdit-Fledern bauen...
 
rofl... hab ich auch grad gesehen... Klappt jetzt :) DAAAANNNKEEE!!!

Ich behalte mir aber dennoch vor weitere fragen zu stellen :D

[UPDATE]

Ich möchte jetzt noch das datum bzw. die uhrzeit in die DB schreiben.

hier mein versuch:

Delphi-Quellcode:
procedure TVocabEingabe.Button1Click(Sender: TObject);
begin
    QRY_InsertVocab.SQL.Text := 'INSERT INTO TabVokabeln (Vok_Deutsch, Vok_Englisch, Datum) VALUES (:Vok_Deutsch, :Vok_Englisch, DATETIME);';

    QRY_InsertVocab.Parameters.ParamByName('Vok_Deutsch').Value := Vok_Deutsch.Text;
    QRY_InsertVocab.Parameters.ParamByName('Vok_Englisch').Value := Vok_Englisch.Text;
    QRY_InsertVocab.ExecSQL;
end;
Fehler kommt: Für mindestens ein Parameter wurde kein Wert angegeben...

eXpli 4. Jan 2008 16:28

Re: Query aus DBEdit-Fledern bauen...
 
Ich möchte jetzt noch das datum bzw. die uhrzeit in die DB schreiben.

hier mein versuch:

Delphi-Quellcode:
procedure TVocabEingabe.Button1Click(Sender: TObject);
begin
    QRY_InsertVocab.SQL.Text := 'INSERT INTO TabVokabeln (Vok_Deutsch, Vok_Englisch, Datum) VALUES (:Vok_Deutsch, :Vok_Englisch, DATETIME);';

    QRY_InsertVocab.Parameters.ParamByName('Vok_Deutsch').Value := Vok_Deutsch.Text;
    QRY_InsertVocab.Parameters.ParamByName('Vok_Englisch').Value := Vok_Englisch.Text;
    QRY_InsertVocab.ExecSQL;
end;
Also einfach Datum mit rangeklemmt...
Fehler kommt: Für mindestens ein Parameter wurde kein Wert angegeben...

mkinzler 4. Jan 2008 16:41

Re: Query aus DBEdit-Fledern bauen...
 
Delphi-Quellcode:
procedure TVocabEingabe.Button1Click(Sender: TObject);
begin
    QRY_InsertVocab.SQL.Text := 'INSERT INTO TabVokabeln (Vok_Deutsch, Vok_Englisch, Datum) VALUES (:Vok_Deutsch, :Vok_Englisch, :Datum);'; //Wie gesagt könnte dies auch statisch gesetzt werden

    QRY_InsertVocab.Parameters.ParamByName('Vok_Deutsch').Value := Vok_Deutsch.Text;
    QRY_InsertVocab.Parameters.ParamByName('Vok_Englisch').Value := Vok_Englisch.Text;
    QRY_InsertVocab.Parameters.ParamByName('Datum').Value := Now; //Oder auch ein anderes Datum/Timestamp
    QRY_InsertVocab.ExecSQL;
end;

kiar 4. Jan 2008 16:43

Re: Query aus DBEdit-Fledern bauen...
 
Moin,

wenn du weiter machst, hast Du am Ende vllt den Code für die Eingabe, diesen aber nicht begriffen.
Ergo, ein bisschen Eigeninitiative, BITTE.

raik

EDIT: Schade, schon passiert

eXpli 4. Jan 2008 19:29

Re: Query aus DBEdit-Fledern bauen...
 
Zitat:

Moin,

wenn du weiter machst, hast Du am Ende vllt den Code für die Eingabe, diesen aber nicht begriffen.
Ergo, ein bisschen Eigeninitiative, BITTE.

raik

EDIT: Schade, schon passiert
Den Code verstehe ich schon... ich habe lang php gescriptet... Mir fällt es nur einfach die syntax für delphi schwer :(




Dennoch DANKE @ mkinzler


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 Uhr.
Seite 2 von 4     12 34      

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