Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Nochmals Probleme mit er SQL-DB (https://www.delphipraxis.net/31706-nochmals-probleme-mit-er-sql-db.html)

TheMiller 12. Okt 2004 20:03


Nochmals Probleme mit er SQL-DB
 
Hi, jetzt habe ich ein ernstes Problem:

ich möchte auf meine SQL-Datenbank per Delphi zugreifen. Das funtz ja nur, wenn ich mit Delphi auf PHPs zugreife, die dann wiederrum auf die SQL-DB zugreifen.

Nun ist es aber so, dass ich weder von PHP, noch von SQL viel Ahnung habe. Hab mich seit gestern damit befasst.

War in Google und gab immer sowas wie "Delphi +MySql +Php" ein oder so. Das hat immer immer ein bisl geholfen.

Wer Tuts oder starke Nerven zum Erklären hat, der kann's ja mal veruschen, mir zu übermitteln. ich müsste folgendes wissen:

-Abfragen von der DB
-Ändern von Datensätzen
-Löschen von Datensätzen
-ges. Abfrage nach Datum sortieren

Es soll ein Terminplaner werden. (Ja, es muss eine SQL-DB im Internet sein :-D )

Es muss aber mit Delphi über PHP-Scripte abrufbar sein!

PS: Mit Tuts bin ich schon zufrieden. Ich erwarte jetzt nicht, dass ihr mir alle Nachhilfe in PHP und SQL gebt, aber wenn ich wollt, dann lasse ich mich zur Not auch überreden :lol:

Danke im Vorraus

maxk 12. Okt 2004 21:53

Re: Nochmals Probleme mit er SQL-DB
 
Muss es wirklich über PHP gehen? MySQL ist ein echter Datenbankserver, d.h. du kannst auch von zu hause auf deine Datenbanken zugreifen ohne über ein PHP Skript zu gehen. Ist aber nur ne Idee. Ansonsten würde ich einen Besuch der nächsten Bibliothek empfehlen. SQL ist eigentlich eine recht einfache Sprache (naja, wenn du einfach Sachen machen willst). Und PHP kann man auch recht schnell erlernen, wenn man Kenntnisse von C ähnlichen Sprachen hat. Also ein Tipp: Guck dir einfach ein paar Sourcecodes an, installiere eine Apache+PHP+MySQL Packet und probiere einfach.

Lern-while-doing :thumb:

TheMiller 12. Okt 2004 22:11

Re: Nochmals Probleme mit er SQL-DB
 
Ja, es muss leider über eine Internet-DB wie SQL gehen, da das Büro in Hanau ist und auch hier auf den Kalender zugegriffen werden muss. Einst war ja der Kalender in handlicher-Buchform aktuell, doch es ist nicht mehr rentabel....

Learning-by-doing! Bin ich ja schon dabei. Nur Ich weiß zum Bleistift nicht, wie ich eine gl. Variable der PHP-Datei in das Label1 des Delphi-Programmes bekomme. Darüber findet man auch wenig...

Deshalb bin ich für jeden Tipp dankbar!

maxk 12. Okt 2004 22:57

Re: Nochmals Probleme mit er SQL-DB
 
Zitat:

Zitat von DJ-SPM
Ja, es muss leider über eine Internet-DB wie SQL gehen, da das Büro in Hanau ist und auch hier auf den Kalender zugegriffen werden muss.

Ja, aber dafür brauchst du kein PHP! Wenn im Büro ein MySQL Server steht (es ist wichtig zu wissen, was dort für ein SQL verfügbar ist - es gibt gravierende Unterschriede), so ist es möglich auf dem Heimrechner:
a) ein Delphi im Büro ein PHP Skript zu starten, welches die Daten zurückliefert und von deinem Programm verarbeitet werden können
b) mit Delphi lokal ein PHP Skript zu starten, welches die Daten aus dem Büro liefert und von deinem Programm verarbeitet werden können (das ist nun wirklich unsinnig :| )
c) mit Delphi eine TCP Verbindung zum SQL Server im Büro aufbauen, die Daten herunterladen und verarbeiten

Die letzte gefällt mir dabei am besten, da du nur vom SQL Server abhängig bist, funktioniert jedoch z.B. bei odbc nicht! Außerdem musst du bei der letzten nur eine Sprache lernen :zwinker: Ich hoffe du hast jetzt verstanden, was ich ohne PHP meine. SQL ist nicht an PHP gebunden jedes andere Programm auf jedem anderen Rechner kann eine Abfrage machen, wenn es die nötigen Daten hat ;)

Zu dem Problem: Einen Vergleich machst du in PHP so:
Code:
if ( Variable1 == Variable2 ) {echo "Die sind gleich";}
if ( Variable1 != Variable2) {echo "Die sind ungleich";}
if ( Variable1 < Variable2) {echo "Variable1 ist kleiner";} // Ich denke die Umkehrung ist klar ;)

endeffects 12. Okt 2004 23:24

Re: Nochmals Probleme mit er SQL-DB
 
also wenn du nach delphi php und mysql suchst wirst du sicher nichts brauchbares finden,
delphi solltest du nutzen um z.b. mit hilfe der indy komponenten die php scripts auszulesen/parsen
und php um die nötigen informationen aus der db abzufragen

TheMiller 13. Okt 2004 19:06

Re: Nochmals Probleme mit er SQL-DB
 
Danke für eure antworten, aber die DB ist bei 1&1, an die ich nur mit PHP ran kann...

Da muss ich wohl noch ein bissl suchen. Danke jedenfalls.

PS: Tuts nehme ich gerne entgegen!

Bye

ipworks 13. Okt 2004 19:14

Re: Nochmals Probleme mit er SQL-DB
 
hmmm...warum erstellst du nicht per PHP eine SQL-Datei auf dem 1&1 Server.
Diese Datei holst Du dir dann per HTTP-Download direkt in die Delphi-Anwendung und spielst Sie in eine lokale mySQL-Installation ?

TheMiller 13. Okt 2004 20:38

Re: Nochmals Probleme mit er SQL-DB
 
Hm.... :shock:

weil ich ein Anfänger bin und nicht weiß, wie das funzt... :gruebel: *g*

maxk 14. Okt 2004 10:23

Re: Nochmals Probleme mit er SQL-DB
 
Davon würde ich abraten. Beim Transfer größer Datenbanken würde ne Menge Zeit draufgehen. Außerdem wäre der Vorteil der Datenbank weg, dass mehrere darauf Zugriff haben (könnten). Ich würde empfehlen ein 10 Zeilen PHP Skript zu schreiben, welches über $HTTP_GET_VARS['sql'] (+ Datenbank + Username + Password) den SQL Befehl entgegennimmt und das Ergebnis in einer ASCII formatierten Tabelle zurückgiebt (das dürfte am einfachsten zu Parsen sein). Ich werde mal versuchen so ein Skript zu schreiben - aber das istjetzt kein Versprechen ;)

maxk 14. Okt 2004 11:05

Re: Nochmals Probleme mit er SQL-DB
 
Fertig! Vorab, ich bin ein PHP-Anfänger - der Code ist dementsprechend :(
Code:
<?PHP
$link = mysql_connect('localhost', $HTTP_GET_VARS['user'], $HTTP_GET_VARS['pass']);
if (!$link) {die('Keine Verbindung zum Server:' . mysql_error());}

$db = mysql_select_db($HTTP_GET_VARS['db'], $link);
if (!$db) {die('Kann Datenbank nicht öffnen:' . mysql_error());}

$result = mysql_query($HTTP_GET_VARS['sql'], $link);
if (!$result) {die('Fehler in SQL Anweisung: ' . mysql_error());}

if ($row = mysql_fetch_assoc($result))
{
   foreach ($row as $key => $value) {echo $key."\t";}
   echo "\n";

   do
   {
      foreach ($row as $value) {
         $value = str_replace("\n","",$value);
         $value = str_replace("\r","",$value);
         echo $value ."\t";
      }
      echo "\n";
   } while ($row = mysql_fetch_assoc($result));
}


mysql_free_result($result);
mysql_close($link);
?>
Aufrufen kannst du den Code so:
Code:
http://provider/sql.php?user=DJ-SPM&pass=Passwort&db=Kalender&sql=SELECT%20*%20FROM%20Kalender
Das Ergebnis wäre folgendes:
Code:
Datum   Länge   Beschreibung   Eingetragen von
01.01.2005   60   Neujahr feiern   maxk
D.h. in der ersten Zeile stehen die Spaltennamen der Abfrage in allen anderen die Werte (immer mit Tabulatoren) getrennt.

Viel Spaß damit 8)

//Edit: Verkürzen der "URL" verhindert


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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