当前位置: 代码迷 >> Sql Server >> 这段SQL语句错在那里,该怎么处理
  详细解决方案

这段SQL语句错在那里,该怎么处理

热度:98   发布时间:2016-04-24 08:55:33.0
这段SQL语句错在那里
  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  变量的值打印出来,一看就知道原因了。
  相关解决方案