Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Ich komme nicht weiter. SP in VCL Form (https://www.delphipraxis.net/48308-ich-komme-nicht-weiter-sp-vcl-form.html)

testoli 23. Jun 2005 13:28

Datenbank: MS SQL 2000 • Zugriff über: ADO

Ich komme nicht weiter. SP in VCL Form
 
Hallo Leute,

es ist sicher lästig auf Anfängerfragen zu antworten, trotzdem bitte ich um Hilfe, da ich sonst einfach nicht weiter komme:

Ich habe alle Tabellen und StoredProcs auf MSSQL 2000 eingerichtet und getestet.
Ich möchte nun ein VCL Form entwickeln, mit dem ich eine SP ansprechen kann und Daten einfüge.
Gehen wir mal von mir als Newbie aus.
1. Ich ziehe eine ADOConnection-Komponente auf mein Form und richte die Verbindung ein.
2. Nun ziehe ich eine ADOCommand-Komponente auf mein Form und verbinde es mit der Connection.
3. Ich sehe nun in den Parametern meine Parameter der SP und bin glücklich :-)
4. Jetzt ziehe ich entsprechende Editfelder auf das Form und einen Button.

So und jetzt stehe ich da:
1. Wie kann ich die Inhalte der Editfelder mit den Parametern der ADOCommand-Komponente verbinden?
2. Wie kann ich auf das Button_click Event die ADOCommand-Komponente dazu bringen die Werte an die SP zu übergeben?
3. Natürlich möchte ich wissen ob der Datensatz eingefügt wurde. Hierfür habe ich ein Label auf das Form gezogen.
4. Nachdem also die SP ausgeführt wurde gibt sie den entsprechenden Wert zurück. Dieser soll nun als Label angezeigt werden. Wie?

Es wäre toll, wenn sich einer die Mühe machen könnte diese Frage detailiert zu beantworten, denn ich denke viele haben diese Startprobleme.

Besten Dank!
Oliver

Stevie 23. Jun 2005 14:07

Re: Ich komme nicht weiter. SP in VCL Form
 
Hi testoli,

da du eine stored Procedure benutzt, solltest du auch die TADOStoredProc benutzen. ;-)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // 1. Parameter angeben
  ADOStoredProc1.Parameters.ParamByName('MeinInParam').Value := EditIn.Text;
  // 2. ausführen
  ADOStoredProc1.ExecProc;
  // 3. eventuelle Rückgabewerte holen
  EditOut.Text := ADOStoredProc1.Parameters.ParamByName('MeinOutParam').Value;
  // falls deine stored procedure ein Datenmenge als Rückgabe ausgibt, dann benutzt du das Object, wie ein Dataset
end;
MfG
Stevie

testoli 24. Jun 2005 08:22

Re: Ich komme nicht weiter. SP in VCL Form
 
Hallo Stevie,

vielen Dank für dein Code Beispiel, sowas hilft! ;-)

Bitte noch eine Frage:

Ich möchte eine C/S Anwendung programmieren, d.h. es gibt einen SQL Server und mehrere Clients mit meiner Anwendung. Ich teste derzeit alles auf einer Maschine und habe daher meine Connection hardcoded verbunden. Wie kann ich später die Anwendung ausrollen und die Connection so halten, dass der SQL Server auch eine andere Maschine sein kann? Gerne würde ich auch eine Useranmeldung ermöglichen, sodaß ich später loggen kann, wer wann ein "update" gemacht hat.

Ich dachte da an eine DBunit.pas, die alle Connections des Users handelt. Aber wie kann ich den Connectionstring einrichten, wenn ich noch nicht weiss wo die DB läuft. Gibt es da einen Registry Eintrag den ich holen könnte, oder kann ich eine INIT.ini laden?? Wie?

Oliver

marabu 24. Jun 2005 11:45

Re: Ich komme nicht weiter. SP in VCL Form
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Oliver,

zum Konfigurieren meiner Datenbank-Anwendungen verwende ich UDL-Dateien.

Delphi-Quellcode:
with ADOConnection do
  ConnectString := Format('FILE NAME=%s', [ChangeFileExt(ParamStr(0), '.udl')]);
Der Aufbau dieser Dateien ist im MS PSDK dokumentiert. Auf deiner Maschine ist eine shell extension installiert, mit der du diesen Dateityp interaktiv bearbeiten kannst. Habe dir für den Start ein template angehängt. Auf meiner Maschine habe ich das Template in die Vorlagenliste aufgenommen, so dass ich neue Dateien über das Kontextmenü der Shell erzeugen kann.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz