Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi IF-Abfrage mit Datenbank (https://www.delphipraxis.net/125029-if-abfrage-mit-datenbank.html)

thiagojonas 29. Nov 2008 15:06

Datenbank: Access • Zugriff über: ADO

IF-Abfrage mit Datenbank
 
HAllo Leute,
ich möchte wissen ob die Datenbank leer ist. Wenn Sie das ist soll ein neues Fenster geöffnet werden.

Habe es so probiert geht aber leider nicht. Der Compiler sag das Integer und String nicht kompatibel sind :-(

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  if form8.DBGrid1.DataSource.DataSet.FieldByName('Name').AsString = 0 then
begin
  form7.ShowModal;
end;
Hat jemand eine Idee, was ich falsch mache?

DeddyH 29. Nov 2008 15:09

Re: IF-Abfrage mit Datenbank
 
Zitat:

Delphi-Quellcode:
....AsString = 0

AsString gibt Dir einen String zurück. Du könntest es mal mit
Delphi-Quellcode:
Length(FieldByName('Name').AsString)
versuchen oder auf NULL abfragen oder oder... Aber für nähere Informationen müsste man Deine Datenstruktur kennen.

thiagojonas 29. Nov 2008 15:18

Re: IF-Abfrage mit Datenbank
 
Ja Danke, klappt noch nicht ganz.

Also ich habe eine ADOCOnnection eine ADODataset und eine TDatasource. ICh habe dann ein formular mit der DBGrid, wo ich die DAtenbank anzeigen lasse. Dieses formular wird aber nie aufgerufen in meinem programm, sondern läuft immer im hintergrund. beim starten des programm möchte ich testen ob die tabelle mit der profilnamen des users leer ist. wenn aj kommt ein fenster, soll ein fenster kommen wo man seinen namen eintrage muss. Das programm ist nur für ein user ausgelegt.

DeddyH 29. Nov 2008 15:22

Re: IF-Abfrage mit Datenbank
 
Das klingt ein wenig... sagen wir mal "befremdlich". Ein Formular, das nie angezeigt wird? Das Design würde ich nochmals überdenken. Habe ich das richtig verstanden, Du willst überprüfen, ob es den User in einer Tabelle gibt? Das würde ich mit einer einfachen SQL-Abfrage machen.
SQL-Code:
SELECT COUNT(1) AS Anzahl
FROM Tabelle
WHERE Username = 'Heinz'
Wenn dann in Anzahl eine 0 steht, gibt es den User 'Heinz' in der Tabelle nicht.

thiagojonas 29. Nov 2008 15:41

Re: IF-Abfrage mit Datenbank
 
Okay nochmal. Ich habe eine DBGrid. Die ist natürlich auf ein Formular. Dieses Formular kann man nicht sehen.
Aber wenn ich z.B. einen neuen Benutzer hinzufüge. Wird in der DBGrid ein neuer Datensatz angelegt mit den entsprechenden Werte. Diese Werte, werden z.B. in eine Listbox geladen.
So funktioniert das bei mir. Beim ersten programmstart soll halt ein Benuzername angelegt werden. Bei den darauffolgenden programmstarts soll kein fenster mehr erscheinen, das man ja bereits einen benutzernamen registriert hat.
Deswegen die Abfrage.
War das ein bisschen verständlicher? :oops: :-D

Jürgen Thomas 29. Nov 2008 16:10

Re: IF-Abfrage mit Datenbank
 
Ein DBGrid, das man nicht sehen kann, ist wirklich Quatsch (das wurde schon gesagt). Wie soll dort ein neuer Datensatz angelegt werden kann?

Vielleicht solltest Du eher über TTable nachdenken.

Jürgen

mkinzler 29. Nov 2008 17:28

Re: IF-Abfrage mit Datenbank
 
Warum ne Table?

alzaimar 29. Nov 2008 18:42

Re: IF-Abfrage mit Datenbank
 
Zitat:

Zitat von thiagojonas
wo ich die Datenbank anzeigen lasse...

Tabelle, Du meinst 'Tabelle'. Eine 'Datenbank' ist der Speicherort, an dem alle Tabellen gespeichert werden. Das wäre so, als ob du 'Datei' und 'Festplatte' verwechselt.

So, wie ich das richtig verstanden habe, möchtest Du einen Benutzer in einer Tabelle anlegen, wenn es noch keinen Benutzer gibt.

Wenn Du deine Query öffnest, kannst Du mit 'RecordCount' die Anzahl der Datensätze ermitteln (0 wäre dann gleichbedeutend mit 'Tabelle ist leer'). Gleiches geht auch mit der Funktion 'MyQuery.IsEmpty'.

Wenn die Tabelle also leer ist, dann zeigst Du deinen Dialog mit Namen usw und speicherst die Daten in der Tabelle ab. Das wars.

thiagojonas 30. Nov 2008 12:03

Re: IF-Abfrage mit Datenbank
 
Danke das wars :thumb: :thumb: :thumb:

DeddyH 30. Nov 2008 12:10

Re: IF-Abfrage mit Datenbank
 
Zitat:

Zitat von alzaimar
Wenn Du deine Query öffnest, kannst Du mit 'RecordCount' die Anzahl der Datensätze ermitteln (0 wäre dann gleichbedeutend mit 'Tabelle ist leer'). Gleiches geht auch mit der Funktion 'MyQuery.IsEmpty'.

Steht doch alles da :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 Uhr.
Seite 1 von 2  1 2      

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