Nuee sachen in character db speichern. suckt

07/13/2012 12:03 Jopsi332#1
Ich will atm nen paar sachen in die db speichern aber am ende sagt er mir Query return FALSE

und in querylog file

cannot convert varchar to int

aber ich lasse meine neuen sache alle nur als int übergeben und speichenr.
ich weiß net wos hängt
vllt. kann ja einer der sich besser mit db auskennt mal drüber gucken

dbmanagersave.cpp

alles mit JOPS_GLOW soll neu gespeichert werden
Code:
#if __VER >= 15 // __CAMPUS
					  ",?,?"
#endif // __CAMPUS
#ifdef __JOPS_GLOW
					",?,?,?,?,?,?,?"
#endif
#if __VER >= 15 // __CAMPUS
MAX_SAVEPARAM += 2; // m_nCampusPoint, m_idCampus
#endif // __CAMPUS
#ifdef __JOPS_GLOW
// MAX_SAVEPARAM += 7;
#endif
[/CODE]
Code:
#if __VER >= 15 // __CAMPUS
	int nCampusPoint	= pMover->GetCampusPoint();
	bOK[++j]	= qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER,   0, 0, &nCampusPoint, 0, 0 );
	u_long idCampus		= pMover->GetCampusId();
	bOK[++j]	= qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER,   0, 0, &idCampus, 0, 0 );
#endif // __CAMPUS
#ifdef __JOPS_GLOW
	bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowArmLeft, 0, 0 ); 
	bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowArmRight, 0, 0 ); 
	bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowLegLeft, 0, 0 );
	bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowLegRight, 0, 0 );
	bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowBody, 0, 0);
	bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowHandLeft, 0, 0);
	bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_iGlowHandRight, 0, 0);
#endif

CHARACTER_STR
Code:
---------- Ver.13
, @im_nHonor int = -1
, @im_nLayer int = 0
---------- Glow System

, @iGlowArmleft int = 0 
, @iGlowArmRight int = 0 
, @iGlowLegLeft int = 0 
, @iGlowLegRight int = 0 
, @iGlowBody int = 0
, @iGlowHandLeft int = 0
, @iGlowHandRight int = 0
---------- Ver 15
--, @im_BankPW char(4) = '0000'
, @im_aCheckedQuest varchar(100) =''
Code:
								, A.idCampus
								, isnull(R.m_nRestPoint, 0) m_nRestPoint
								, isnull(R.m_LogOutTime, 0) m_LogOutTime
								, A.GlowArmLeft
								, A.GlowArmRight
								, A.GlowLegLeft 
								, A.GlowLegRight
								, A.GlowBody
								, A.GlowHandLeft
								, A.GlowHandRight
						FROM    CHARACTER_TBL A,
Code:
						, idCampus = @im_idCampus
						----------- Glow System
						, GlowArmLeft = @iGlowArmleft
						, GlowArmRight = @iGlowArmRight
						, GlowLegLeft = @iGlowLegLeft
						, GlowLegRight = @iGlowLegRight
						, GlowBody = @iGlowBody
						, GlowHandLeft = @iGlowHandLeft
						, GlowHandRight = @iGlowHandRight
				WHERE   m_idPlayer                              = @im_idPlayer  
				AND 	serverindex 				= @iserverindex
Das einzige was geht ist das abspeichern beim erstellen eines neuen chars
07/13/2012 14:23 lolix3#2
Du schriebst das hier:

#if __VER >= 15 // __CAMPUS
MAX_SAVEPARAM += 2; // m_nCampusPoint, m_idCampus
#endif // __CAMPUS
#ifdef __JOPS_GLOW
// MAX_SAVEPARAM += 7;
#endif
[/CODE]


// MAX_SERVERPARAM += 7;

Ist auskommentiert, soll das so, mehr würd mir nicht auffallen kann ja nicht wirklich C++.

Greetz
07/13/2012 15:46 Marv!n#3
Trägt die entsprechende Datenbankspalte den richtigen Typ?
"cannot convert varchar to int" ist ja nämlich schon recht eindeutig.

Darf btw das [m_BankPW] auskommentiert bleiben? Wenn es das Passwort für die normale Bank ist, so muss dort ja etwas übergeben werden, da die Spalte (zumindest bei uns) als NOT NULL deklariert ist - zum8ndest, wenn es sich um die normale Bank handelt.
07/13/2012 16:29 Pumbaaa#4
@Jopsi
Die Variablen werden der Reihenfolge nach gesetzt, nicht dem Namen oder so, was auch unlogisch wäre, da du ja keine Namen angibst.
Also streng dein "Grips" an und find die Lösung selbst.

@Xxl3lubbs
Das Bank PW wird nicht in der CHARACTER_TBL sondern in der BANK_TBL gespeichert wo es zum speichern oder updaten eigene Funktionen in der BANK_STR gibt.
07/13/2012 21:21 Jopsi332#5
k jetzz hab ich kapiert wo der fehler liegt.
07/16/2012 17:13 Jopsi332#6
#closerrequest
da es jetz geht
07/16/2012 17:14 Sextus#7
#closed