![]() |
Re: Allgemeine Fragen zu Access + Delphi
Oh danke, habs schon... es muss nämlich nicht ADOQuery1.Next heißen sondern ADOTAble1.Next
|
Re: Allgemeine Fragen zu Access + Delphi
ein weiteres problem hat sich ergeben: ich kann jetzt nur das passwort einer bestimmten person abfragen, also:
Delphi-Quellcode:
wie kann ich stattdessen eine Variable einfügen? z.B. den Namen aus einem DBEdit-Feld?
SELECT Passwort FROM TUser WHERE User = 'Username';
|
Re: Allgemeine Fragen zu Access + Delphi
Hallo Saulo,
dazu kannst du eine parametrisierte Query benutzen. Das SQL Statement lautet in disem Fall z.B:
SQL-Code:
durch den Doppelpunkt hast du einen Parameter erzeugt. Diesesm weist du einen Wert zu, bevor du die Query ausführst:
SELECT Passwort FROM TUser WHERE User = :usr
Delphi-Quellcode:
oder du erzeugst das SQL Statement dynamisch:
ADOQuery1.ParamByName('usr').AsString := 'MrSpock';
ADOQuery1.Open;
Delphi-Quellcode:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT Passwort FROM TUser WHERE User ='+QuotedStr(Edit1.Text)); ADOQuery1.Open; |
Re: Allgemeine Fragen zu Access + Delphi
ok, danke! übrigens: die noten haben wir schon gekriegt dafür (4+....) aber wir müssen das programm montag noch abgeben dannw irds gebrannt und veröffentlicht... und ich möcht echt ne bombe abgeben, damit der mal sieht dass wir doch nicht son faluer haufen sind... :)
also dann die nächsten fragen: - wie heißt die methode zum aktivieren und löschen eines bestimmten nestimmte datensatzes? (das steht auch nicht in der hilfe....) - wie kann man den inhalt eines Edit-Feldes in die Tabelle schrieiben und wie einen boolean-wert der tabelle zuweisen? danke schon mal! |
Re: Allgemeine Fragen zu Access + Delphi
oh, eine paar fehler... also nochmal konkreter:
- wie heißt die methode zum aktivieren und löschen eines bestimmten datensatzes? (z.B. wenn ich den datensatz mit der ID '4' löschen möchte) - wie kann man den inhalt eines Edit-Feldes in ein Feld der Tabelle schreiben und einem feld einen boolean-wert zuweisen? und wie weiat man dem feld ein datum zu, also als welche deklaration (string, TDateTime...) oder geht das irgendwie anders bzw. genauso wie ein edit-feld zuweisen...? - wie kann ich zu einem datum n tage addieren und das in einem feld speichern? |
Re: Allgemeine Fragen zu Access + Delphi
Hallo Saulo,
wie wäre es einmal mit einem Buch zum Thema Datenbankprogrammierung? Den Datensatz mit der ID 4 löscht du mit:
SQL-Code:
oder, falls ID ein Schlüsselfeld ist, z.B. mit
DELETE FROM t_personen WHERE ID = 4
Delphi-Quellcode:
Den Inhalt eines Editfeld in die Datenbank schreiben geht mit:
if t_personen.FindKey([4]) then
t_personen.Delete;
Delphi-Quellcode:
{ Datensatz, in den eingefügt werden soll suchen }
if t_personen.FindKey([4]) then begin t_personen.Edit; t_personen.FieldByName('Inhalt').AsString := Edit1.Text; t_personen.Post; end; |
Re: Allgemeine Fragen zu Access + Delphi
Zitat:
SQL-Code:
UPDATE t_personen SET (Inhalt) = ('Text') WHERE ID = 4
|
Re: Allgemeine Fragen zu Access + Delphi
Zitat:
naja... also das mit dem GotoKey funzt irgendwie nicht... der befehl wird nicht erkannt, also 'undeclared indentifier'... woran liegts? t_personen ist doch in diesem Beispiel die tabelle oder? also in meinem Falld dann eben DataModule2.TUser |
Re: Allgemeine Fragen zu Access + Delphi
ok, dann nochmal eine letzte frage: wie implementiert man eine suchfunktion? ich würde es am liebsten in SQL machen... geht das? in delphi geht das doch irgendwie mit locate oder so....?
|
Re: Allgemeine Fragen zu Access + Delphi
hilföööööö.... :?
und noch ne frage :roll: also ich steh vor dem problem, dass ein user erst dann weiterkommt wenn er sich registriert hat, und das soll hal so laufen dass man auf ok klickt und dann ein button aktiv (alsoo enabled) wird. nur irgendiwe klappt das nicht so ganz, hier der quelltext:
Code:
der Username hat einen Primärschlüssel, deswegen soll am anfang geprüft werden ob der eingegebene schon vorhanden ist, nur irgednwie klappt das nicht ganz... liegt es daran dass die ID auch einen Primärschlüssel hat? können nicht beide einen Primärschlüssel haben? und am ende soll der weiter-butten erst aktiviert werden, wenn alle felder ausgefüllt sind. aber wenn man sich durch die ShowMessages durchgeklickt hat, wird er nach der letzten einfach aktiviert :(
function username : boolean;
begin Datamodule2.qryUser.Close; DataModule2.qryUser.SQL.Clear; DataModule2.qryUser.SQL.Add('SELECT Username FROM TUser WHERE Username =' +QuotedStr(Form3.Edit1.Text)); DataModule2.qryUser.Open; end; procedure TForm3.Button1Click(Sender: TObject); begin username; if username = true then ShowMessage('Der Username ist bereits vergeben!') else if (form3.MaskEdit1.Text = form3.MaskEdit2.Text) and (form3.MaskEdit2.Text <> '') then begin try DataModule2.TUser.Edit; DataModule2.TUser.FieldByName('Passwort').AsString := form3.MaskEdit2.text; DataModule2.TUser.FieldByName('Username').AsString := form3.Edit1.Text; DataModule2.TUser.Post; except ShowMessage('Fehler unsoo'); end; end else ShowMessage('Das Passwort wurde falsch bestätigt!'); if DataModule2.TUser.FieldByName('Vorname').AsString = '' then begin showmessage ('Bitte geben sie ihren Vornamen an!'); form3.Button3.Enabled := false; end else form3.Button3.Enabled := true; if DataModule2.TUser.FieldByName('Nachname').AsString = '' then begin showmessage ('Bitte geben sie ihren Nachnamen an!'); form3.Button3.Enabled := false; end else form3.Button3.Enabled := true; if DataModule2.TUser.FieldByName('Username').AsString = '' then begin showmessage ('Bitte geben sie einen Username an!'); form3.Button3.Enabled := false; end else form3.Button3.Enabled := true; if inttostr(DataModule2.TUser.FieldByName('Tel').AsInteger) = '' then begin showmessage ('Bitte geben sie ihre Telefonnummer an!'); form3.Button3.Enabled := false; end else form3.Button3.Enabled := true; end; procedure TForm3.Button2Click(Sender: TObject); begin form3.close; form1.show; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:02 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