Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Inkompatibel TStrings und String (https://www.delphipraxis.net/46951-inkompatibel-tstrings-und-string.html)

Iso 3. Jun 2005 15:01

Datenbank: MYSQL • Version: 4 • Zugriff über: MyDac

Inkompatibel TStrings und String
 
Hi Leute!
Programmiere erst seit ca. 2 Wochen mit Delphi und wollte jetzt versuchen, mich mit einer MYSQL-Datenbank zu verbinden.
Ich benutze zum verbinden und arbeiten mit der Datenbank "MyDac".

In meiner Form hab ich die 3 Komponenten aus der MYSQL-IDE MyConnection, MyQuery und MyCommand,
verbindung zum Server steht auch,
jetzt möchte ich in meine Tabelle einen neuen Kunden einfügen und habe dies folgendermaßen versucht:

Delphi-Quellcode:
procedure Tfrmadmin.cmdneubenClick(Sender: TObject);
begin

name := txtneuname.text;
passwort := txtneupass.text;
guthaben := txtneugut.text;
zins := txtneuzins.text;
einfuegen := 'INSERT INTO kunden VALUES(NULL,' + name + ', ' + passwort + ', ' + guthaben +', ' + zins + ')';
mycommand.SQL := einfuegen;
mycommand.Execute;

end;
Doch leider hat er einen Fehler, nämlich in der Zeile mycommand.SQL := einfuegen
Er meint "Inkompatible Typen: 'TStrings' und 'String'.
Die Variable "einfuegen" habe ich als string deklariert.

Wäre echt nett, wenn mir wer schnell weiterhelfen könnte :)

Luckie 3. Jun 2005 15:03

Re: Inkompatibel TStrings und String
 
Probier mal:
Delphi-Quellcode:
mycommand.SQL.Textb := einfuegen;
Und guck mal in der Hilfe unter Delphi-Referenz durchsuchenTStrings und Delphi-Referenz durchsuchenString nach, da sollte einiges klarer werden.

Iso 3. Jun 2005 15:17

Re: Inkompatibel TStrings und String
 
Ok danke, der fehler ist behoben,

Aber nachdem ich dann die Daten auf meinem formular eingegeben habe und den Button geklickt habe, soll ich den Pfad zu der Datei "mysqlnet.pas" angeben, da er sie beötigt, doch leider findet google da nichts zu.

Sharky 3. Jun 2005 15:39

Re: Inkompatibel TStrings und String
 
Hai Iso,

ich denke mal er möchte die Datei haben weil es eine Exception gegeben hat.

Zwei Anmerkungen:

a) Verwende als Variablenname nie ein reserviertes Word! name ist ein solches und wenn Du eine Variable so nennst (ausser in einem Record oder ähnlich) wirdst Du immer wieder Probleme bekommen.
b) mySQL möchte, wenn ich mich recht erinnere Strings die Du z.B. bei einem INSERT einfügst in zwei ' eingeschlossen haben.

Iso 3. Jun 2005 16:12

Re: Inkompatibel TStrings und String
 
Jo, hast recht, war schon blöd von mir n reservierten namen zu benutzen *ausfehlernlerntman* :-D

Und mit dem Insert hatteste auch recht, müssen an jedem ' noch 2 weitere ' angehängt werden in der Insert-Methode

Sharky 3. Jun 2005 16:20

Re: Inkompatibel TStrings und String
 
Zitat:

Zitat von Iso
... müssen an jedem ' noch 2 weitere ' angehängt werden in der Insert-Methode

Bevor Du jetzt aber einen String mit lauter ''''' aufbaust schaue Dir mal Delphi-Referenz durchsuchenQuotedStr an ;-)

Delphi-Quellcode:
  einfuegen := 'INSERT INTO kunden '
            + 'VALUES(NULL,'
            + QuotedStr (dername)
            + ', ' + QuotedStr (passwort)
            + ', ' + QuotedStr(zins)
            + ')';

Iso 3. Jun 2005 16:31

Re: Inkompatibel TStrings und String
 
Danke für den Tipp, ieht alles gleich viel übersichtlicher aus!

Sharky 3. Jun 2005 16:45

Re: Inkompatibel TStrings und String
 
Zitat:

Zitat von Iso
Danke für den Tipp, ieht alles gleich viel übersichtlicher aus!

Wobei das Arbeiten mit Parametern noch besser ist ;-) (Ich denke mal myDAC kann das?`)
Delphi-Quellcode:
myquery.SQL := 'INSERT INTO kunden VALUES(NULL, :name , :passwort, :guthaben, :zins)';
myquery.ParamByName ('name').AsString := txtneuname.text;
myquery.ParamByName ('passwort').AsString := txtneupass.text;
myquery.ParamByName ('guthaben').AsString := txtneugut.text;
myquery.ParamByName ('zins').AsString := txtneuzins.text;
myquery.Execute;


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