Delphi-PRAXiS
Seite 27 von 36   « Erste     17252627 2829     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Delphi MySQL ohne Komponenten (https://www.delphipraxis.net/6543-mysql-ohne-komponenten.html)

DeddyH 1. Feb 2008 08:53

Re: MySQL ohne Komponenten
 
Zitat:

Zitat von pemue
wo finde ich diese Zeile? in der mysql.pas? dort habe ich sie leider nicht finden können

Hier

DeddyH 1. Feb 2008 09:47

Re: MySQL ohne Komponenten
 
Das Prinzip ist immer das Gleiche:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Con: PMYSQL;
    host, user, pass, db: PChar;
    Row: PMySQL_Row;
    Res: PMYSQL_RES;
    query: string;
    i: integer;
begin
  host := 'localhost';
  user := 'root';
  pass := '';
  db  := 'apitest';

  Con := mysql_init(nil);
  if Assigned(Con) then
    try
      if Assigned(mysql_real_connect(Con, host, user, pass, db, 3306, nil, 0)) then
        begin
          query := 'SHOW TABLES FROM apitest';
          mysql_real_query(Con,PChar(query), Length(query));
          Res := mysql_store_result(Con);
          if Assigned(Res) then
            for i := 0 to mysql_num_rows(Res) - 1 do
              begin
                Row := mysql_fetch_row(Res);
                Memo1.Lines.Add(Row[0]);
              end;
        end
      else
        ShowMessage(mysql_error(Con));
    finally
      mysql_close(Con);
    end;
end;
Ungetestet, sollte aber im Groben funktionieren.

Ykcim 25. Apr 2008 20:42

Re: MySQL ohne Komponenten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ist zwar schon lange her, dass zu diesem Thema etwas geschrieben wurde, aber ich habe eine Frage und finde trotz intensivster Suche keine ANtwort. Ich weiß auch, dass es wahrscheinlich angebracht wäre, einen neuen Beitrag zu erstellen, aber ich hoffe hier eine bestimmte Gruppe von Usern ansprechen zu können - nämliche solche, die Delphi und MySQL ohne Komponenten verbunden haben...

Ich habe alle so gemacht, wie es oben beschrieben wurde - mit großem Erfolg. Allerdings war es nur möglich, StringGrids mit Daten aus der DB zu füllen. Ich benötige eine Möglichkeit, wie ich ein Edit-Feld mit Daten bestücken kann.

Folgendes hatte ich mir überlegt - ohne Erfolg:

Delphi-Quellcode:
function FillEdit(const Datenbank, query, Spalte: string; ED:TEdit): Boolean;
var
   MySQLRes: PMYSQL_RES;
   Field: PMYSQL_FIELD;
   ErrorCode: Integer;
begin
  connect;
   // Datenbank auswählen
   ErrorCode := mysql_select_db(_mycon, PChar(Datenbank));
   if ErrorCode = 0 then
   begin
     // Query ausführen
     ErrorCode := mysql_real_query(_mycon, PChar(query), length(query));
     if ErrorCode = 0 then
     begin
       // Query speichern
       MySQLRes := mysql_store_result(_mycon);
       if Assigned(MySQLRes) then
       begin
          with MySQLRes do
            begin
              ED.Text:=FieldByName(Spalte).AsString;
            end;
       end;
     end;
   end;
end;


procedure TBackForm.Button1Click(Sender: TObject);
var query:string;
    Spalte :string;
begin
connect;
query:='select * from auftrag where FA_NR=100014';
spalte.text:='ArtikelNr';
filledit (DB, query, Spalte, edit1);
disconnect;
end;
Ich bekomme nur Fehlermeldungen. Die Verbindung zur MySQL DB klappt zwar einwandfrei, ich bekomme aber keine einzelnen Daten heraus, sondern nur in einem StringGrid (FillGrid)

Es wäre SPITZE, wenn mir einer weiterhelfen könnte, da ich mit meinem Latein am Ende bin (nach 50-60 Stunden Ausprobieren)..

Danke

hincapie 28. Apr 2008 08:06

Re: MySQL ohne Komponenten
 
Der Fehler ist in folgender Zeile:
Delphi-Quellcode:
   ED.Text:=FieldByName(Spalte).AsString;
Das kann nicht gehen, da Du keine TTable oder TQuery verwendest und daher auch keine TFields hast, die Du mit FieldbyName direkt ansprechen kannst.
Du musst vielmehr den Umweg über das Stringgrid nehmen und das gewünschte Feld auswählen, dann kannst Du den Text als normalen String an das Edit-Feld übergeben...

Schau auch mal in den Beitrag #262 von DeddyH, dort wird das Prinzip eigentlich schon sehr gut erklärt, da wird in ein Memo geschrieben, muss man eigentlich nur auf TEdit umstellen... :coder:

Mackhack 28. Apr 2008 08:28

Re: MySQL ohne Komponenten
 
Oder aber du deklarierst dir ein Record und schreibst dort die Daten rein und nimmst einfach die Information raus und schreibst sie ins TEdit.

Und Spalte.Text gibts net. Spalte := ... wuerde schon eher gehen!

delphinia 12. Dez 2008 22:20

Re: MySQL ohne Komponenten
 
Ich wollte mit der mySQL Direct... einen Insert ausführe, doch sagt mir der Compiler

[Fehler] test_pas.pas(88): String-Literale können maximal 255 Elemente besitzen[code]

ja aber was mach ich nun? mein Insert ist halt über 300 Zeichen da er viele Felder hat... HIIILFE :-)



Geht es nur in dem ich den String aufteile?

Christian Seehase 12. Dez 2008 23:59

Re: MySQL ohne Komponenten
 
Moin Doreen,

Zitat:

Zitat von delphinia
Geht es nur in dem ich den String aufteile?

Ja.

'Literal1'+'Literal2'+...

Jeweils maximal 255 Zeichen.

himitsu 13. Dez 2008 00:18

Re: MySQL ohne Komponenten
 
Der Link im 1. Post ist immernoch veraltet und down.

Vielleicht könnte man ja nun, fast 1,5 Jahre später mal einigen Vorschlägen (von z.B. seite 16) folgen und da Einiges editieren?

Dax 13. Dez 2008 01:19

Re: MySQL ohne Komponenten
 
Zitat:

Zitat von himitsu
Vielleicht könnte man ja nun, fast 1,5 Jahre später mal einigen Vorschlägen (von z.B. seite 16) folgen und da Einiges editieren?

Bitte den genauen Beitrag - der Thread hat bei mir nur 11 Seiten ;)

delphinia 13. Dez 2008 01:20

Re: MySQL ohne Komponenten
 
bei mir 18


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr.
Seite 27 von 36   « Erste     17252627 2829     Letzte »    

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-2025 by Thomas Breitkreuz