AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei PChar

Ein Thema von Sämy · begonnen am 25. Nov 2004 · letzter Beitrag vom 25. Nov 2004
Antwort Antwort
Sämy

Registriert seit: 4. Nov 2004
Ort: Basel (CH)
76 Beiträge
 
Delphi 2007 Professional
 
#1

Fehler bei PChar

  Alt 25. Nov 2004, 15:36
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:
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
was mich jedoch stutzig macht:
StrComp(query, query2) ist gleich 0!!!

MFG
  Mit Zitat antworten Zitat
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#2

Re: Fehler bei PChar

  Alt 25. Nov 2004, 15:43
Hallo,

wo ist denn da jetzt das Problem? strcmp gibt 0 bei Gleicheit zurück... das ist doch schon immer so
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Fehler bei PChar

  Alt 25. Nov 2004, 15:43
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:
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);
MfG
Muetze1
  Mit Zitat antworten Zitat
Sämy

Registriert seit: 4. Nov 2004
Ort: Basel (CH)
76 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Fehler bei PChar

  Alt 25. Nov 2004, 15:53
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?
  Mit Zitat antworten Zitat
Sämy

Registriert seit: 4. Nov 2004
Ort: Basel (CH)
76 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Fehler bei PChar

  Alt 25. Nov 2004, 16:08
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 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