![]() |
Datenbank: MySQL • Version: 5.1 • Zugriff über: libmysql.dll
mittels mysql.pas Wert ändern
hi,
ich bin ein Anfänger mit MySQL, in der Schule hatten wir mal ein wenig den Syntax durchgenommen und mehr nicht (bis zu joints). Aktuell möchte ich nur einen Wert in meiner MySQL Datenbank ändern, dh. Datenbank, Tabelle und Eintrag existieren bereits. Allerdings sind meine Kenntnisse nicht soweit, dass ich es innerhalb ein paar Minuten selbst lösen könnte. Deshalb wende ich mich an dieses Forum, in der Hoffnung das ihr mir etwas "vorkauen" könnt. Ich muss nur noch diesen wert ändern, dann habe ich dieses Projekt abgeschlossen; ich bedanke mich schon bereits im vorraus bei euch. Zu meinem kleinen Problem: Den Wert hier möchte ich ändern:
Code:
<p>Hello
</p> ![]() Wenn ich diesen Syntax benutze, bekomme ich nachfolgendes Ergebnis. Nur noch die "4" fehlt mir irgendwie, irgendwo.
Code:
select information_id
from information_description ![]()
Delphi-Quellcode:
mfg
...
try libmysql_load(nil); myConnect := mysql_init(nil); if mysql_real_connect(myConnect, PAnsiChar(AnsiString(lblSQLurl.Caption)), PAnsiChar(AnsiString(tbSQLlogin.Text)), PAnsiChar(AnsiString(tbSQLpw.Text)), PAnsiChar(AnsiString(tbSQLname.Text)), 0, nil, 0) = nil then ShowMessage('Die Verbindung konnte nicht hergestellt werden. Ursache: ' + mysql_error(myConnect)); mysql_select_db(myConnect, DBNAME); // hier bin ich ja noch am grübel was ich verwenden muss mysql_close(myConnect); |
AW: mittels mysql.pas Wert ändern
Hm also wenn du nur auslesen magst,
dann muss das Feld erstmal im select stehen und wenn du es rein lesen willst. Wenn du an bestimmte Felder nicht so herankommst hilft meist ein Cast. zb: String(<Feld>) oder Cast(Feld as String) je nach Syntax. Wenn du das Feld information_id ändern willst auf einem Datensatz dann würde ich dir zum Update raten. zb: Update information_description set information_id = 9 where information_id = 4 Hier auf die Formatierung achten (Strings in Hochkomma usw) zb: Update information_description set description = 'wasauchimmer' where information_id = 4 Ich hoffe mal das waren deine Fragen, denn so klar geht das aus Thread nicht hervor. :( |
AW: mittels mysql.pas Wert ändern
Zitat:
Aber das sowas schon im Lehrplan steht ... verkehrte Welt :mrgreen: Oder meinst du etwa JOINs? ;) |
AW: mittels mysql.pas Wert ändern
ich würde es so machen:
Delphi-Quellcode:
Gruß
myquery.close;
myquery.sql.text:='update mytable set description='schwarzer Afghane' where information_id=4'; myquery.sqlexec; K-H |
AW: mittels mysql.pas Wert ändern
Zitat:
Zitat:
Zitat:
Ich glaube du hast da diese TSQLQuery Kompo verwendet. Danke trotzdem. Also wenn ich
Code:
im phpMyAdmin als SQL syntax eingebe, wird der richtige Eintrag geändert.
update information_description
set description='schwarzer Afghane' where information_id=4 Nun, der Ort wäre nun gefunden. Hierfür soweit Danke! Jetzt bleibt nur noch die Frage, wie ich diesen syntax in delphi verwende. In der mysql.pas gibt es leider nichts bezüglich dem Stichwort "update". Das einzigste was näher kommt wären:
Delphi-Quellcode:
Allerdings führt dies nicht zum Ändern der Werte:
function mysql_query(_mysql: PMYSQL; q: PAnsiChar): longint;
function mysql_send_query(_mysql: PMYSQL; q: PAnsiChar; length: longword): longint;
Delphi-Quellcode:
habt ihr noch ideen?
...
try libmysql_load(nil); myConnect := mysql_init(nil); if mysql_real_connect(myConnect, PAnsiChar(AnsiString(lblSQLurl.Caption)), PAnsiChar(AnsiString(tbSQLlogin.Text)), PAnsiChar(AnsiString(tbSQLpw.Text)), PAnsiChar(AnsiString(tbSQLname.Text)), 0, nil, 0) = nil then ShowMessage('Die Verbindung konnte nicht hergestellt werden. Ursache: ' + mysql_error(myConnect)); mysql_query(myConnect, 'update information_description set description=''''schwarzer Afghane+123'''' where information_id=4'); //query befehl mysql_close(myConnect); |
AW: mittels mysql.pas Wert ändern
Die generelle UPDATE-Syntax lautet so:
SQL-Code:
Da Du ja mit der mysql.pas IIRC keine Klassen verwenden kannst, müsste das in Delphi umgesetzt etwa so aussehen:
UPDATE <Tabelle>
SET <Feld> = <Wert> [, <weiteres Feld> = <weiterer Wert>] WHERE <Bedingung>
Delphi-Quellcode:
(* SQL-Befehl mit Platzhalter für den neuen Wert *)
QueryString := 'UPDATE information_description SET description = %s WHERE information_id = 4'; (* Der einzusetzende Wert wird in Anführungszeichen gesetzt und aufbereitet *) EscapedValue := mysql_real_escape_string(QuotedStr(NewValue)); (* Jetzt noch den Platzhalter befüllen und Befehl ausführen *) mysql_query(Format(QueryString, [EscapedValue])); |
AW: mittels mysql.pas Wert ändern
EDIT:
Sorry, nun bin ich ins offene Messer gerannt. Es funktioniert nun, danke an alle: aus
Delphi-Quellcode:
mysql_query(myConnect, 'update information_description set description=''''schwarzer Afghane+123'''' where information_id=4'); //query befehl
mach das:
Delphi-Quellcode:
mysql_query(myConnect, 'update information_description set description=''schwarzer Afghane+123'' where information_id=4'); //query befehl
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr. |
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 by Thomas Breitkreuz