![]() |
Fehler bei PChar
was mache ich falsch??
Delphi-Quellcode:
query := PChar('SELECT SEC_TO_TIME(' + IntToStr(93) + ' * 60) AS az');
mysql_real_query(conn, query, Length(query)); res := mysql_store_result(conn); //Gibt einen Pointer zurück
Delphi-Quellcode:
was mich jedoch stutzig macht:
function getAZ: integer;
//... query2 := PChar('SELECT SEC_TO_TIME(' + IntToStr(getAZ) //getAZ gibt 93 zurück + ' * 60) AS az'); mysql_real_query(conn, query2, Length(query2)); res := mysql_store_result(conn); //Gibt nil zurück StrComp(query, query2) ist gleich 0!!! MFG |
Re: Fehler bei PChar
Hallo,
wo ist denn da jetzt das Problem? strcmp gibt 0 bei Gleicheit zurück... das ist doch schon immer so :gruebel: |
Re: Fehler bei PChar
Moin!
Ich weiss nicht ob es der Fehler ist, aber beim 2. Quellcode gibst du auch query an anstatt query2 beim mysql() Aufruf. Da aber eine solche PChar() Konvertierung nur temporär ist und eine begrenzte Gültigkeit hat, würde ich darin das Problem vermuten. Auch macht mich die Benutzung von Length() stutzig, weil im Normalfall solltest du strlen() benutzen, da es sich um einen PChar handelt und nicht mehr um einen String. Zur Abhilfe im allgemeinen würde ich es so machen, dass du einene normalen String verwendest und direkt beim Aufruf der mysql Funktion einen TypeCast mit PChar(StringVariable) machst.
Delphi-Quellcode:
MfG
Var
Query : String; Begin query := PChar('SELECT SEC_TO_TIME(' + IntToStr(getAZ) + ' * 60) AS az'); mysql_real_query(conn, PChar(query), Length(query)); res := mysql_store_result(conn); Muetze1 |
Re: Fehler bei PChar
habs jetzt mal geändert => funktioniert immer noch nicht...
es sollte jedoch auch so wie ich es geposted habe laufen, denn ich brauche andauernd mysql- anbindungen und überall funktioniert es so. (das mit dem query und nicht query2 im 2.beispiel war ein postingfehler - sry) @fiasko: natürlich ist das ok, wenn es 0 zurückgibt. aber wieso gibt mir denn mysql_fetch_result im einen fall einen pointer zurück und im andern nil? |
Re: Fehler bei PChar
MAN!!! ich idiot!!!!
hab den fehler: hab in der methode getAZ ebenfalls eine datenbankanbindung verwendet, die den gleichen stream verwendet (conn). der pointer von conn wurde dadurch verändert => wenn ich die methode nicht aufrief, wurde dieser nicht verändert und alles lief ganz normal :S Besten Dank trotzdem |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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-2025 by Thomas Breitkreuz