- 论坛徽章:
- 0
|
EXEC SQL BEGIN DECLARE SECTION;
char sSqlStr[1024]; /*Y830 */
EXEC SQL END DECLARE SECTION;
memset(sSqlStr,0x00,sizeof(sSqlStr));
sprintf(sSqlStr,"UPDATE %s..amsd \
SET AMSD_NAME_LINE_1='%s', \
AMSD_ADDR_LINE_1='%s', \
AMSD_CITY_STATE='%s', \
AMSD_PHONE_NBR_2='%s', \
AMSD_STORE_PN3='%s', \
AMSD_PSTL_CD='%s', \
AMSD_CONTACT_1='%s', \
AMSD_STORE_LEVEL_C2='%s', \
AMSD_STORE_PHONE='%s', \
AMSD_UPD_TIME='%s' \
WHERE \
AMSD_STORE = '%s'",
pDb,
AmsdAction.Amsd_Name_Line_1,
AmsdAction.Amsd_Addr_Line_1,
AmsdAction.Amsd_City_State,
AmsdAction.Amsd_Phone_Nbr_2,
AmsdAction.Amsd_Store_Pn3,
AmsdAction.Amsd_Pstl_Cd,
AmsdAction.Amsd_Contact_1,
AmsdAction.Amsd_Store_Level_C2,
AmsdAction.Amsd_Store_Phone,
AmsdAction.Action_Time ,
AmsdAction.Amsd_Store );
PrintBATLog("SQL[%s]",sSqlStr);
EXEC SQL excute immediate :sSqlStr;
------------------------------------------------------
上面是原代码
UPDATE db001..amsd
SET AMSD_NAME_LINE_1='AMSD001',
AMSD_ADDR_LINE_1='(测试修改) ',
AMSD_CITY_STATE='太原 ',
AMSD_PHONE_NBR_2='03510000000 ',
AMSD_STORE_PN3='818888999',
AMSD_PSTL_CD='030002 ',
AMSD_CONTACT_1='李XXX ',
AMSD_STORE_LEVEL_C2='2',
AMSD_STORE_PHONE='03510000000 ',
AMSD_UPD_TIME='20090401105121'
WHERE AMSD_STORE = '616000050'
运行中sSqlStr实际内容是上面这个
但运行到 EXEC SQL excute immediate :sSqlStr;时报如下错误
2009-04-02 17:10:59 :sqlca.sqlcode=-102;sqlmsg=Incorrect syntax near '@sql0_sSqlStr'
请大家帮忙看看是怎么回事 再此谢过啦。
[ 本帖最后由 isnobles 于 2009-4-2 17:26 编辑 ] |
|