Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQLDB lesen (https://www.delphipraxis.net/96909-mysqldb-lesen.html)

Tommy1988 1. Aug 2007 14:54

Datenbank: MySQL • Version: - • Zugriff über: -

MySQLDB lesen
 
Hallo..

in PHP sieht eine Abfrage ja bekanntlich ungefähr so aus:
Code:
<?php
$abfrage = "SELECT * FROM daten WHERE id = '1'"; // oder Variable oder soetwas bei id..
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
   echo '<hr>Vorname: '; echo "$row->Name
";
   echo 'Nachname: ';   echo "$row->ID";
   }
?>
Wie kann ich soetwas in Delphi mit den DirectSQL Units realisieren?

In die DB schreiben klappt ganz gut
Delphi-Quellcode:
var
q: String;
ex: Boolean;
begin
q := 'UPDATE daten SET Name = ''' + Edit1.text + ''' WHERE id = 1';
FResult := FMysql.query(q, true, ex);
Aber lesen noch nicht so richtig

mkinzler 1. Aug 2007 15:00

Re: MySQLDB lesen
 
http://www.dsdt.info/tutorials/mysqldirect/

Tommy1988 1. Aug 2007 15:01

Re: MySQLDB lesen
 
Ich wusste dass das kommt :lol:

Nur leider habe ich mir das schon öfter durchgelsen und ich blicke bei der angeblichen Abfrage von dem Tutorial nicht durch.

Wo bitte soll man bei dieser Abfrage an die Daten kommen und diese ausgeben?

Edit:
Page-4
Da blicke ich nicht durch.

mkinzler 1. Aug 2007 15:10

Re: MySQLDB lesen
 
Delphi-Quellcode:
FResult := FMysql.query(q, true, ex);
q ist die Abfarge. In deinem Fall
SQL-Code:
SELECT * FROM daten WHERE id = 1;

Tommy1988 1. Aug 2007 15:12

Re: MySQLDB lesen
 
Mhh.. ok "SELECT * FROM daten WHERE id = 1;" also ist das alles gleich wie in sql?

FResult ist ja aber kein String, wie gebe ich denn dieses in einer Textkomponente aus (RichEdit, Label, Memo usw..)

mkinzler 1. Aug 2007 15:14

Re: MySQLDB lesen
 
Nei FResult ist das Ergebnis: welches du wie auf Seite4(procedure TForm1.TableStructure) beschrieben, auswerten kannst.

Tommy1988 1. Aug 2007 15:19

Re: MySQLDB lesen
 
1: Irgentwas klappt da bei "procedure TableContent; (...)" nicht.

Wenn daraus procedure Tform1.TableContent; mache und oben bei Private die Procedur
(procedure TableContent;) hinzufüge klappt es. (keine Compilierungsfehler)

So..

2: StringGrid1.Cells[2,i+1]:=IntToStr(af.Field_Type);
"[Fehler] Unit1.pas(67): E2003 Undefinierter Bezeichner: 'Field_Type'"

Edit:
Ich kapier das einfach nicht mehr..
(...)

Edit2:
Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
var q: string;
    ex: boolean;
begin
  if assigned(FResult) then begin
    if FMysql.Status<>MYSQL_STATUS_READY then
      ShowMessage('Ein Ergebnis wurde unvollständig gelesen!');
      FreeAndNil(FResult);
  end;
  q := InputBox('Geben Sie eine Abfrage ein',
  'Welche Abfrage durchgeführt werden soll','SELECT * FROM daten WHERE id = 1');
  FResult := FMysql.query(q, true, ex);
  if assigned(FResult) then
  begin
    ShowMessage('Query: OK - Ergebnis gespeichert');
    TableContent;
    end
  else
  begin
    if ex then
    begin
      ShowMessage('Query: OK - ausgeführt')
    end
    else
    begin
      ShowMessage('Query fehlgeschlagen: '+FMysql.LastError);
    end;
    end;
end;
Jetzt hab ich es. Diese Auswertungsprocedur die es da noch gibt die hat mich verwirrt! Die braucht man garnicht.. also Text AUSGEBEN klappt jetzt auch!

mkinzler 1. Aug 2007 15:23

Re: MySQLDB lesen
 
Vielleicht heisst der Member jetzt anders?

Tommy1988 1. Aug 2007 15:33

Re: MySQLDB lesen
 
Eine generelle Frage hätte ich da jetzt aber noch
Delphi-Quellcode:
  FMysql.port := Edit4.Text;
das funktioniert nicht und kann ja auch
nicht funktionieren.

Inkompatible Typen: 'Cardinal' und 'TCaption' Klar..

Aber wie mache ich das möglich?

Edit: nicht host, sondern port

mkinzler 1. Aug 2007 15:35

Re: MySQLDB lesen
 
StrToInt, TryStrToInt, Val


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:57 Uhr.
Seite 1 von 2  1 2      

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