AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Datenbanken Delphi Zu SQL-Server im Internet verbinden und SQL-Abfragen machen
Thema durchsuchen
Ansicht
Themen-Optionen

Zu SQL-Server im Internet verbinden und SQL-Abfragen machen

Ein Thema von KrypticAngel · begonnen am 30. Okt 2006
Antwort Antwort
KrypticAngel

Registriert seit: 26. Okt 2006
2 Beiträge
 
#1

Zu SQL-Server im Internet verbinden und SQL-Abfragen machen

  Alt 30. Okt 2006, 20:23
Hallihallo!
Ich habe mich in letzter Zeit etwas mit Datenbanken im Internet beschäftigt, und möchte euch (nach zig Fehlversuchen) das Ergebnis meiner Anstrengungen in (hoffentlich) leicht verständlicher Form näherbringen.

Für unser kleines Beispielprogramm brauchen wir:
  • Die Komponenten ZeosLib (Hier erhältlich), die Installationsanleitung ist beim entpackten Archiv in der Datei 'installation.html'
  • Eine Form mit folgenden Komponenten:
    • 3 Buttons: Btn_Verb; Btn_Trenn; Btn_Abfr => Palette Standard
    • 1 Memo (Memo1) => Palette Standart
    • 1 DBGrid (DBGrid1) => Palette Datensteuerung
    • 1 DBNavigator => Palette Datensteuerung
    • 2 DBEdit (DBEdit1; DBEdit2) => Palette Datensteuerung
    • 1 Komponente ZConnection (ZConnection1) => Palette Zeos Access
    • 1 Komponente ZQuery (ZQuery1) => Palette Zeos Access
    • 1 Komponente DataSource (DataSource1) => Palette Datenzugriff
  • Eine Datenbank im Internet (z.B. auf FreeSQL.org) und deren Zugangsdaten


Damit hätten wir alle Zutaten zusammen.

Als erstes müssen wir eine Prozedur schreiben, die die Abhängigkeiten zwischen den Komponenten regelt. Das muss man nicht über den Quelltext machen, aber so hat man auf einen Blick, was mit was verbunden ist.

Delphi-Quellcode:
procedure TForm1.LinkKomponents;
begin
with ZConnection1 do begin
  Database := 'Datenbankname';
  HostName := 'URL zu euerem Host, z.B. www.freesql.org';
  Password := 'euer Passwort';
  Port := 3306; //Der Port auf dem die DB angesprochen wird, bei freesql.org 3306
  Protocol := 'mysql';
  User := 'Euer Username';
end;
ZQuery1.Connection := ZConnection1;
DataSource1.DataSet := ZQuery1;
DBNavigator1.DataSource := DataSource1;
DBGrid1.DataSource := DataSource1;
DBEdit1.DataSource := DataSource1;
DBEdit1.DataField := 'name';
DBEdit2.DataSource := DataSource1;
DBEdit2.DataField := 'nname';
end;
Somit haben wir die Komponenten miteinander verknüpft, und der Verbindung klargemacht, wie sie unseren SQL-Server zu handhaben hat.
Nun packen wir das ganze in den FormCreate Teil:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
ZConnection1.Disconnect; //Sollte eine Verbindung offen sein, so wird sie geschlossen
LinkKomponents; //Hiermit werden die Komponenten verbunden
end;
Die restlichen Funktionen sind sehr einfach aufgebaut, weil die Komponente ZConnection alles für uns erledigt.
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin
ZConnection1.Disconnect; //Falls man vergessen hat die Verbindung zu schließen wir sie hier nochmal geschlossen
end;

procedure TForm1.Btn_VerbClick(Sender: TObject);
begin
ZConnection1.Disconnect; //Falls die Verbindung noch/schon offen ist wird der Fehler
                         //vermieden, dass noch eine Verbindung offen ist
ZConnection1.Connect; //Herstellen der Verbindung
end;

procedure TForm1.Btn_TrennClick(Sender: TObject);
begin
ZConnection1.Disconnect; //Trennen der Verbindung
end;


procedure TForm1.Btn_AbfrClick(Sender: TObject);
begin
ZQuery1.SQL:= memo1.Lines; //Der Text der Abfrage steht in Memo1
ZQuery1.Open; //Die Abfrage wir 'freigegeben' => ausgeführt
end;
Bevor wir damit vernünftig arbeiten könne, brauchen wir erst mal eine Tabelle.
Wenn das Projekt kompiliert ist und läuft muss man folgendes machen:

In Memo1 eingeben:
Zitat:
CREATE TABLE namen (name varchar(30) NOT NULL, nname varchar(30), PRIMARY KEY (name));
Mit einem KLick auf Abfrage wird eine Tabelle mit dem Namen namen erstellt, die zwei Spalten für Strings â 30 Zeichen hat. name und nname. Die Tabelle will nun mit Werten gefüllt werden. Das können wir ganz einfach machen, indem wir in das Memo nun eingeben:
Zitat:
SELECT * FROM namen
Damit wir die Tabelle geöffnet und wir können über das BDGrid oder die Textfelder Datensätze hinzufügen. (KLeiner Tip am Rande: Die Eigenschaft 'ShowHint' des DBNavigators auf 'true' setzen, dann hat man Tool-Tips zu den Buttons)

Über das Memo kann man nun alle Aktionen die MYSQL zulässt durchführen und bekommt die Resultate im DBGrid angezeigt (und in den Edit-Feldern).

Damit Endet dieser Exkurs. Ich hoffe alles war verständlich und das ganze ist hilfreich. Zumindest hatte ich Probleme etwas vergleichbares wie das hier zu finden und ich glaube, ich bin nicht der Einzige. Über ein kleines bisschen Feedback würde ich mich freuen *g*

edit: Ich habe noch den Source für das Beispielprogramm als Zip angehangen
Angehängte Dateien
Dateityp: zip demoprogramm_167.zip (1,8 KB, 215x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:50 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