hur.cn - 华软网

 热门搜索

这样的语句该怎样写?

  作者:未知    来源:网络    更新时间:2019/4/16
我要更新一个内外的数据
我的表名是从变量得来的
string ls_tablename
ls_tablename='emp'
update :ls_tablename set empdes=:sle_1.text where empid=:sle_2.text using sqlca;

为什么不能更新呢?如果我写成
update emp set empdes=:sle_1.text where empid=:sle_2.text using sqlca;
就能够,请问是那里不对,该怎样写啊
------华软网友回答------
UPDATE TableName
   SET FieldName = varName
[USING TransactionObject]
好好看看!
------华软网友回复------
什么意思嘛!看,怎么看,能看懂我还来问吗?这个是什么意思啊!
------华软网友回复------
表名和列名是不能用变量的

如果实在要用  能够用动态游标或动态存储进程  例子:
--------------------------------------

//////////////////////////////////////////////////////////////////
//
// 函数:gf_add_dictionary
// 功能:增加数据字典 (数据字典都是一样的数据结构)
// 参数:string as_tabName 表名
// string as_colName 列名
// string as_value   增加的记录值
// 前往:
// 作者:YBW
//
//////////////////////////////////////////////////////////////////

integer li_sq //序号
string ls_sql

declare cur_add DYNAMIC CURSOR for sqlsa;
ls_sql = "select MAX (序号) " + &
" from " + as_tabName
prepare sqlsa from :ls_sql;
open cur_add;
fetch cur_add into :li_sq;
if SQLCA.SQLCode <> 0 then 
messageBox ("数据库毛病", "读毛病!~r~n~r~n毛病代码:" + &
string (sqlca.sqlDbCode) + "~r~n详细信息:" + & 
sqlca.sqlERRText, stopSign!)
end if
close cur_add;

li_sq ++

declare pro_add DYNAMIC Procedure for sqlsa;
ls_sql = "insert " + as_tabName + "(序号," + as_colName + ")" + &
"values (" + string (li_sq) + ", '" + as_value + "')"
//messageBox ('', ls_sql)
prepare SQLSA FROM :Ls_sql;
execute pro_add;
if SQLCA.SQLCode <> 0 then 
messageBox ("数据库毛病", "增加数据字典毛病!~r~n~r~n毛病代码:" + &
string (sqlca.sqlDbCode) + "~r~n详细信息:" + & 
sqlca.sqlERRText, stopSign!)
rollback using sqlca;
RETURN
else
commit using sqlca;
end if
close pro_add;




------华软网友回复------
string ls_tablename
ls_tablename='emp'

string ls_sql
ls_sql = "update " + ls_tablename + " set empdes='" + sle_1.text + "' where empid='" + sle_2.text + "'"

execute immediate :ls_Sql using sqlca;

------华软网友回复------
就是楼上的意思。
------华软网友回复------
好象动态sql语句也不能在表名和列名上用变量吧
------华软网友回复------
能够
------华软网友回复------
学习      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。