Mir nicht erklärbarer Fehler

09/16/2016 15:57 Drabur#1
Hey habe irgendwie einen Fehler beim speichern der Chars hergestellt der sich mir nicht erschließt.

CDbManager::SavePlayer
hat folgendes
PHP Code:
    bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER,   0, 0, &nSlot, 0, 0 );
    
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER,   0, 0, &pMover->m_dwWorldID, 0, 0 );
    
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER,   0, 0, &pMover->m_dwIndex, 0, 0 );
    
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_FLOAT, SQL_REAL,     0, 0, &pMover->m_vPos.x, 0, 0 );
    
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_FLOAT, SQL_REAL,     0, 0, &pMover->m_vPos.y, 0, 0 );
    
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_FLOAT, SQL_REAL,     0, 0, &pMover->m_vPos.z, 0, 0 );
    
bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_CHAR,  SQL_VARCHAR,  32, 0, pMover->m_szCharacterKey, 0, &cbLen ); 
Was schon immer so ist.
Der SQL Befehl mach jedoch aus den 3 Positionen die eigentlich mit einem "." angebeben werden ein ",". Zusehen hier
PHP Code:
'Detlef',0,1,12,6920,994140625,102,62079620361328,3288,565185546875,'(null)',0,0,-329126,3,1,1 
Durch das "," sagt der SQL Server natürlich das es zu viele Parameter gibt. Hat einer evtl eine Idee woran das liegen könnte?
09/16/2016 18:48 XepoSoft#2
Wie sieht es denn bei Save Position aus?
09/16/2016 20:24 Drabur#3
Wie soll das da aussehen den Code davon habe ich doch gepostet und wenn du die Marking pos meinst also die von der Arena die wirklich richtig formatiert also mit einem "." so wie es sein soll

Kann es an SQL nativ Client liegen?
09/17/2016 01:36 FlyCraft.TobiLap#4
Check mal die Language deines SQL-Servers/Systems (Regional Settings)
sodass die Zahlenformatierung bei Zahlen einen . statt eines Kommas hat.

#MirkoImmernochInDerWerkstatt?
09/17/2016 09:26 Drabur#5
Quote:
Originally Posted by FlyCraft.TobiLap View Post
Check mal die Language deines SQL-Servers/Systems (Regional Settings)
sodass die Zahlenformatierung bei Zahlen einen . statt eines Kommas hat.

#MirkoImmernochInDerWerkstatt?
Danke
Werde das mal testen wenn ich zuhause bin
@[Only registered and activated users can see links. Click Here To Register...]p
nie in einer Werkstatt gearbeitet aber immer noch im Sozialbereich.
09/17/2016 13:34 Kiseku#6
Hast du vielleicht irgendwelche systeme (mit db zeug) hinzugefügt ? Wenn ja nimm sie mal raus xD
@[Only registered and activated users can see links. Click Here To Register...] wann komm Banana Flyff wieder
09/17/2016 18:57 xTwiLightx#7
Quote:
Originally Posted by FlyCraft.TobiLap View Post
Check mal die Language deines SQL-Servers/Systems (Regional Settings)
sodass die Zahlenformatierung bei Zahlen einen . statt eines Kommas hat.

#MirkoImmernochInDerWerkstatt?
Im Deutschen sollte auch ein Punkt bei real verwendet werden.

Außerdem scheint der Server ja die Kommata mitzuschicken, nicht der SQL Server
09/18/2016 16:41 Drabur#8
Quote:
Originally Posted by xTwiLightx View Post
Im Deutschen sollte auch ein Punkt bei real verwendet werden.

Außerdem scheint der Server ja die Kommata mitzuschicken, nicht der SQL Server
Fällt die noch etwas ein woran das liegen könnte? Irgendeine Sache die man nicht direkt im Kopf hat.
09/19/2016 20:00 xTwiLightx#9
Vielleicht einfach mal im Debugger schauen, was pMover->m_vPos.x/y/z für Werte im Speicher haben.

Am besten einmal beim Laden des Chars (müsste CHARACTER_STR 'S8' sein) und einmal beim Speichern ('U1') ausgeben.
Wenn es schon beim Laden kommt, ist es ein SQL Server Problem - wenn nicht, dann gibt es wohl Probleme in deinem Code. Eventuell haben sich die SQL_* Defines geändert?
09/19/2016 20:08 Drabur#10
Wenn ich die S8 ausführe gibt er mir die richtigen Zahlen wieder nur wenn der Server U1 macht dann sind da die "," drin. Hab das im Profiler schon rausgesucht daher hab ich auch keine Ahnung was es ist. Was meinst du mit SQL_* sowas wie SQL_REAL oder eine Version?
09/19/2016 21:05 xTwiLightx#11
Quote:
Originally Posted by Drabur View Post
Wenn ich die S8 ausführe gibt er mir die richtigen Zahlen wieder nur wenn der Server U1 macht dann sind da die "," drin. Hab das im Profiler schon rausgesucht daher hab ich auch keine Ahnung was es ist. Was meinst du mit SQL_* sowas wie SQL_REAL oder eine Version?
Richtig, so etwas wie SQL_REAL ist gemeint.

Wenn es beim U1 drin ist, kommt es vom Server - also fleißig Breakpoints setzen und debuggen.
09/19/2016 22:14 Drabur#12
Es ist halt seltsam das die Zahl mit einem "." formatiert wird und im Sql befehl nachher das "," hat. Habe auch an SQL_REAL nichts geändert.
09/19/2016 22:33 FlyffServices#13
Quote:
Originally Posted by Drabur View Post
Es ist halt seltsam das die Zahl mit einem "." formatiert wird und im Sql befehl nachher das "," hat. Habe auch an SQL_REAL nichts geändert.
Ist das seit anfang an oder ist es jetzt plötzlich aufgetaucht?
Hast du davor an der Datenbank rumgeschraubt?
Was für eine Sprache hast du in deinem Betriebssystem?

Versuch mal: Rechtsklick-[CHARACTER_01_DBF]->Eigenschaften->Optionen->Sortierung

Welche Sortierung hast du da?

Quote:
Originally Posted by xTwiLightx View Post
Im Deutschen sollte auch ein Punkt bei real verwendet werden.

Außerdem scheint der Server ja die Kommata mitzuschicken, nicht der SQL Server
Muss nicht sein. SQLBindParameter könnte den Float von 510.50151 zu 510,50151 konvertieren.
09/19/2016 22:48 Drabur#14
Habe den Root wo der flyff server drauf ist neu installiert aber die datenbank nicht die is auf einem anderen

Das ist bei Option eingestellt.
[Only registered and activated users can see links. Click Here To Register...]

Sprace vom Betriebssystem ist deutsch
09/20/2016 08:29 xTwiLightx#15
Quote:
Originally Posted by Drabur View Post
Es ist halt seltsam das die Zahl mit einem "." formatiert wird und im Sql befehl nachher das "," hat. Habe auch an SQL_REAL nichts geändert.
Ich weiß nicht, was daran so schwer ist, einfach den Debugger anzuwerfen? :facepalm:
Quote:
Originally Posted by FlyffServices View Post
Ist das seit anfang an oder ist es jetzt plötzlich aufgetaucht?
Hast du davor an der Datenbank rumgeschraubt?
Was für eine Sprache hast du in deinem Betriebssystem?

Versuch mal: Rechtsklick-[CHARACTER_01_DBF]->Eigenschaften->Optionen->Sortierung

Welche Sortierung hast du da?



Muss nicht sein. SQLBindParameter könnte den Float von 510.50151 zu 510,50151 konvertieren.
Die Sortierung ist auch wirklich nur für die Sortierung zuständig.Unter anderem noch für die Suche (ci oder cs), aber mit den Floats wird das nichts zu tun haben.


Deshalb ja meine Frage nach einer Änderung der Defines. SQLBindParameter könnte das auf Grund einer bestimmten Änderung machen, weil das Define von SQL_REAL oder ähnlichem sich geändert hat.
Quote:
Originally Posted by Drabur View Post
Habe den Root wo der flyff server drauf ist neu installiert aber die datenbank nicht die is auf einem anderen

Das ist bei Option eingestellt.
- BILD -
Sprace vom Betriebssystem ist deutsch
DEBUGGEN! Was ist daran so schwer?
Es wird NICHTS mit dem SQL Server zu tun haben.


Das einzige, was noch in Frage käme, wäre der verwendete Treiber in der ODBC Config. Da aber die Werte beim Character Import völlig normal sind, scheidet das aus.

Habe ich erwähnt, dass du einfach debuggen sollst?