C++ SQLBindParameter
Voici les déclarations de variables:
string strFirstName;
string strLastName;
string strAddress;
string strCity;
string strState;
double dblSalary;
string strGender;
int intAge;
...Faire un peu de "cin" instructions pour obtenir les données...
retcode = SQLPrepare(StatementHandle, (SQLCHAR *)"INSERT INTO EMPLOYEE ([FirstName], [LastName], [Address], [City], [State], [Salary], [Gender],[Age]) VALUES (?,?,?,?,?,?,?,?)", SQL_NTS);
retcode = SQLBindParameter(StatementHandle, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, 50, 0 &strFirstName,0, NULL);
retcode = SQLBindParameter(StatementHandle, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, 50, 0, &strLastName,0, NULL);
retcode = SQLBindParameter(StatementHandle, 3, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, 30, 0, &strAddress,0, NULL);
retcode = SQLBindParameter(StatementHandle, 4, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, 30, 0, &strCity,0, NULL);
retcode = SQLBindParameter(StatementHandle, 5, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, 3, 0, &strState,0, NULL);
retcode = SQLBindParameter(StatementHandle, 6, SQL_PARAM_INPUT, SQL_C_DOUBLE, SQL_DOUBLE, 0, 0, &dblSalary,0, NULL);
retcode = SQLBindParameter(StatementHandle, 7, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, 2, 0, &strGender,0, NULL);
retcode = SQLBindParameter(StatementHandle, 8, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &intAge,0, NULL);
retcode = SQLExecute(StatementHandle);
L'int et un double travail d'amende et sont stockés dans la table...mais je ne peux pas comprendre comment obtenir les chaînes de magasin...
OriginalL'auteur PapaDaniel | 2008-10-06
Vous devez vous connecter pour publier un commentaire.
La documentation MSDN pour SQLBindParameter dit que vous êtes censé passer un tampon contenant les données pour
ParameterValuePtr
et la longueur de la mémoire tampon en octets pour lesBufferLength
:Justed dû ajouter le (SQLPOINTER) et il a très bien fonctionné.
qu'entend-on par passer deux type de données différent? ex. SQL_C_CHAR, SQL_LONGVARCHAR
OriginalL'auteur 1800 INFORMATION
Il ressemble à l'api, veut un unsigned char *
essayer de passer dans une chaîne c, à l'aide de la c_str() appel de méthode.
OriginalL'auteur EvilTeach