为何在PB运行中没有执行成功!!在查询分析器中能成功执行

cairg 2004-12-06 03:24:24
string str_sql
str_sql="INSERT INTO " + ls_sqltablename + " (项目名称 ,项目地点 ,建设单位 ,开工时间 ,竣工时间) " &
+"VALUES ('" + ls_xmmc + "','" + ls_xmdd + "','" + ls_jsdd + "',convert(datetime,('" + ls_kgss + "')),convert(datetime,('" + ls_jgss + "'))) USING sql_sql"
EXECUTE IMMEDIATE :str_sql USING sql_sql;

例:
INSERT INTO use_date (项目名称 ,项目地点 ,建设单位 ,开工时间 ,竣工时间) VALUES ('9','9','9',convert(datetime,('2004-01-01 00:00:00')),convert(datetime,('2004-01-01 00:00:00'))) USING sql_sql
注: PB调试下COPY出来的。在查询分析器中能成功执行。。
环境:PB8+SQL2000...因为表经常变所以用动态SQL进行处理?
为何在PB运行中没有执行成功!!
...全文
93 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cairg 2004-12-06
结了
回复
青锋-SS 2004-12-06
不客气.解决了就好.
回复
cairg 2004-12-06
谢谢: sdhylj(青锋--SS) ,行了,,今天写糊涂了。。。
回复
青锋-SS 2004-12-06
可你这一句:
str_sql="INSERT INTO " + ls_sqltablename + " (项目名称 ,项目地点 ,建设单位 ,开工时间 ,竣工时间) " &
+"VALUES ('" + ls_xmmc + "','" + ls_xmdd + "','" + ls_jsdd + "',convert(datetime,('" + ls_kgss + "')),convert(datetime,('" + ls_jgss + "'))) USING sql_sql" //此处的USING sql_sql应去掉.
EXECUTE IMMEDIATE :str_sql USING sql_sql;
是动态的SQL语句,str_sql里面包含了USING sql_sql,下面执行的时候就不对了呀.
回复
cairg 2004-12-06
我知道啊。。。这个我当然知道啊。。。在查询分析器中我当然拿掉的啊。。。我的系统连接两个数据库的。。access与sql2000,这里是对sql2000做插入操作。。
回复
青锋-SS 2004-12-06
你在PB里面直接用可以,但一旦拼成字符串,里面就不应该有using sql_sql了,SQL Server是不认识它的.
回复
cairg 2004-12-06
INSERT INTO use_date(项目名称,项目地点,建设单位,开工时间,竣工时间)
VALUES (:ls_xmmc,:ls_xmdd,:ls_jsdd,:da_kgss,:da_jgss) USING sql_sql;
我写成这样能成功能的,,,但写在动态SQL形式就没有数据插入了。。我想应该出在动态SQL那里,我一定要写成动态SQL形式,因为我的表use_date经常变化的。
回复
青锋-SS 2004-12-06
这一句有问题:
str_sql="INSERT INTO " + ls_sqltablename + " (项目名称 ,项目地点 ,建设单位 ,开工时间 ,竣工时间) " &
+"VALUES ('" + ls_xmmc + "','" + ls_xmdd + "','" + ls_jsdd + "',convert(datetime,('" + ls_kgss + "')),convert(datetime,('" + ls_jgss + "'))) USING sql_sql"
字符串里面不应该有:USING sql_sql
回复
cairg 2004-12-06
//连接SQL2000数据库
Transaction sql_sql
sql_sql=create transaction
sql_sql.DBMS = profilestring(s_instpath+config_file_name,'sqldatabase','dbms','')
sql_sql.LogId = profilestring(s_instpath+config_file_name,'sqldatabase','logid','')
sql_sql.database = profilestring(s_instpath+config_file_name,'sqldatabase','databasename','')
sql_sql.ServerName = profilestring(s_instpath+config_file_name,'sqldatabase','servername','')
sql_sql.logpass = profilestring(s_instpath+config_file_name,'sqldatabase','pwd','')
sql_sql.autocommit = True
ls_sqltablename = profilestring(s_instpath+config_file_name,'sqldatabase','tablename','')
connect using sql_sql;
if sql_sql.sqldbcode <> 0 then
messagebox("警告","SQL2000数据库连接错误信息:" + sql_sql.sqlerrtext + "~r~n数据库连接失败!!",stopsign!)
return
end if
回复
cairg 2004-12-06
sql_sql.autocommit = True
不对啊。。我数据库连接时参数就是true的。。
回复
zhengshouquan 2004-12-06
sqlma.autocommit = true

string str_sql
str_sql="INSERT INTO " + ls_sqltablename + " (项目名称 ,项目地点 ,建设单位 ,开工时间 ,竣工时间) " &
+"VALUES ('" + ls_xmmc + "','" + ls_xmdd + "','" + ls_jsdd + "',convert(datetime,('" + ls_kgss + "')),convert(datetime,('" + ls_jgss + "'))) USING sql_sql"
EXECUTE IMMEDIATE :str_sql USING sql_sql;

sqlma.autocommit = false
回复
相关推荐
发帖
数据库相关
创建于2007-09-28

734

社区成员

PowerBuilder 数据库相关
申请成为版主
帖子事件
创建了帖子
2004-12-06 03:24
社区公告
暂无公告