private
TableName: string;////表名
FieldIndex: string;///节点编号
FieldPID: string;///父节点编号
FieldCaption: string;//内容
sqlStr, errStr: string;
下面这两段SQL语句提示出错,如何更改
1、
sqlStr := 'Update ' + TableName + ' set ' + FieldCaption + '="' + NewCaption + '" where '
+ FieldIndex + ' = ' + IntToStr(PNodeData(Node.Data)^.Index);
这段提示列名'XXX'无效
2、 sqlStr := 'Insert into ' + TableName + ' (' + FieldIndex + ',' + FieldPID +
',' + FieldCaption + ')' + ' values(' +
IntToStr(PData^.Index) + ',';
if Node = nil then Node := TreeView.Items.Item[0];
if Node.Level = 0 then
sqlStr := sqlStr + '0,"' + '新节点' + '")'
else
sqlStr := sqlStr + IntToStr(PNodeData(Node.Parent.Data)^.Index) + ',"' + '新节点' + '")';
这段提示错误'在此上下文中不允许使用 '新节点'。此处只允许使用常量、表达式或变量。不允许使用列名。
------解决思路----------------------
1、这还有什么疑问?既然字段不存在,要么是字段名写错了、要么是表名用错了(传了另外一张表的表名)。
2、INSERT 语句的 VALUES 括号内不能用字段名啊!你到底怎么想的?
------解决思路----------------------
不同数据库语法不一样啊,谁告诉你直接就能用的?
------解决思路----------------------
不清楚你要做什么,怎么改?
请提供参数值、期望结果。
------解决思路----------------------
在执行前,把 sqlStr 变量的值打印出来,一看就知道原因了。