关于调用odbc存储过程的参数的奇怪问题!!!!!!!!

god_sun 2008-10-15 01:29:11

iRecordDownLoadFileNew ("07017ps10211456", 56239, "2008-10-15 10:30:27"); //这样没问题,存储过程可以正确执行



string acDevSer = "";
int iFileId = 0;
string acTime = "";
FindDevCrcSucInfo (pcValue, acDevSer, iFileId, acTime); //获得p1, iFildId, p2 值,这里没问题
char *p1 = strdup (acDevSer.c_str());
char *p2 = strdup (acTime.c_str());

// iRecordDownLoadFileNew (p1, iFileId, p2); //!!!!!!!!这样调用时就报错。调试时 p1, iFildId, p2 均为以上值


iRecordDownLoadFileNew 函数:
int Cdataaccess::iRecordDownLoadFileNew (char *pDeviceJid, int iFileId, char *pDownTime)
{
_DBCONN *dbconn;
char acTmp[MAX_BUFFER_LEN];
SQLHSTMT hstmt;
SQLRETURN rc;
int i = 0;


dbconn = pclsGetIdleConn (&m_stDbconnpool);
if (!dbconn)
{
vdWrite (TEST_FILE, "can not find dbconn !");
return -2;
}

hstmt = hGetStateHandle (dbconn);
if (SQL_NULL_HSTMT == hstmt)
{
vdWrite (TEST_FILE, "can not find hstmt !");
iAddConn (&m_stDbconnpool, dbconn);
return -1;
}

memset (acTmp, 0, sizeof (acTmp));
sprintf (acTmp, "{call proc_tb_Dev_FileDownLoaded_Record_New (?,?,?)}");

rc = SQLPrepare (hstmt, (SQLCHAR *)acTmp, SQL_NTS);
if((rc!=SQL_SUCCESS) && (rc!=SQL_SUCCESS_WITH_INFO))
{
vdWrite (TEST_FILE, "iRecordDownLoadFile 1!");
iAddConn (&m_stDbconnpool, dbconn);
return -1;
}
SQLBindParameter (hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_WVARCHAR, SQL_DESC_LENGTH, 0, pDeviceJid, 0, NULL);
SQLBindParameter (hstmt, 2, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &iFileId, 0, NULL);
SQLBindParameter (hstmt, 3, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_WVARCHAR, SQL_DESC_LENGTH, 0, pDownTime, 0, NULL);

rc = SQLExecute (hstmt);
if((rc!=SQL_SUCCESS) && (rc!=SQL_SUCCESS_WITH_INFO))
{
vdWrite (TEST_FILE, "iRecordDownLoadFile 2!"); //报错时就进入这里。
iAddConn (&m_stDbconnpool, dbconn);
return -1;
}

iAddConn (&m_stDbconnpool, dbconn);
return 0;
}



请大虾解释下奇怪原因~~~~?
...全文
94 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
god_sun 2008-10-15
  • 打赏
  • 举报
回复
没人解答么?
god_sun 2008-10-15
  • 打赏
  • 举报
回复
tell me y?

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧