C/S SQL2000 数据库procedure TForm1.BitBtn1Click(Sender: TObject);
VAR
    UNAME:string;
    UWORD:string;
begin
  if (edit1.text='') or
     (edit2.text='')
  then
    begin
    showmessage('请输入用户和口令!');
    exit;
   End;
   UNAME:=edit1.text;
   UWORD:=edit2.text;
   query1.close;
   query1.sql.clear;
   query1.sql.add('select usercode,username,bags,class,status from users where      USERNAME='+UNAME+' AND PASSWORD='+UWORD);
   query1.open;    end;end.提交时
错误如下 INVAILD FIELD NAME,ODBC(SQL SERVER)列名无效‘SYSTEM’(EDIT1.TEXT的输入值)???什么原因呀

解决方案 »

  1.   

    query1.sql.add('select usercode,username,bags,class,status from users where      USERNAME='''+UNAME+''' AND PASSWORD='''+UWORD+'''');试试这个行不行
      

  2.   

    query1.sql.add('select usercode,username,bags,class,status from users where      USERNAME='+#39+UNAME+#39+' AND PASSWORD='+#39+UWORD+#39);
      

  3.   

    query1.sql.add('select usercode,[username],bags,class,status from users where      [USERNAME]='+UNAME+' AND [PASSWORD]='+UWORD);
      

  4.   

    query1.sql.add('select usercode,[username],bags,class,status from users where      [USERNAME]='''+UNAME+''' AND [PASSWORD]='''+UWORD+'''');
      

  5.   

    应该是yiyideyi(一一得一)提供的语句
      

  6.   

    query1.sql.add('select usercode,username,bags,class,status from users where      USERNAME='''+UNAME+''' AND PASSWORD='''+UWORD+'''');
      

  7.   

    谢谢各位了,
      我不明白'''和''''
      书上为什么不是这么写,是不是因为SQL2000的原因吗
      

  8.   

    'select usercode,username,bags,class,status from users where      USERNAME='+quotedstr(UNAME)+' AND PASSWORD='+quotedstr(UWORD)
      

  9.   

    解决问题的方法
    procedure TForm1.Button1Click(Sender: TObject);
    VAR
        UNAME:string;
        UWORD:string;
    begin
      if (edit1.text='') or
         (edit2.text='')
      then
        begin
        showmessage('请输入用户和口令!');
        exit;
       End;
       UNAME:=edit1.text;
       UWORD:=edit2.text;
       query1.close;
       query1.sql.clear;
       query1.sql.add('select usercode,username,bags,class,status from users where      USERNAME='+UNAME+' AND PASSWORD='+UWORD);
       query1.open;
       query1.SQL.SaveToFile('d:/123.txt');
       //把 d:/123.txt打看,看看是什么问题
    end;
      

  10.   

    query1.sql.add('select usercode,[username],[PASSWORD]bags,class,status from users where      [USERNAME]='+UNAME+' AND [PASSWORD]='+UWORD);
     试试看!
      

  11.   

    提示很明显啊:字段名无效。检查一下你的查询语句中的字段名是否存在于数据表中。
    另外:查询语句的WHERE子句也有问题,应该改为:
    ...
    query1.SQL.add(' select usercode,username,bags,class,status ' +
                   ' from users ' +
                   ' where USERNAME = ' + QuotedStr(UNAME) + //目的是加上引号
                   '   AND PASSWORD = ' + QuotedStr(UWORD)   //目的是加上引号              );
    ...
      

  12.   

    本人初涉Delphi,但在JAVA中对SQL语句调用了解一点!这个问题最主要的是字符串的转变的问题,一定要搞清楚在Delphi中调用SQL语句时哪些是做为字符串处理,哪些是做为默认的数据类型来处理的!否则在 “cdsgajxlp(起名很难)”所写的CODE中产生的那个文本文件中一定会有乱码!
      

  13.   

    谢各位的帮助
    TO:cdsgajxlp(起名很难)
       “   query1.SQL.SaveToFile('d:/123.txt');
         //把 d:/123.txt打看,看看是什么问题”
      --没有d:/123.txt 未执行到query1.sql.add('select usercode,username,bags,class,status from users where      USERNAME='''+UNAME+''' AND PASSWORD='''+UWORD+'''');
    可以啦我后来我在DATAMODULE 加了ADOCONNECT 用“INI文件调用”又有新问题了
    什么“TABLE DO NOT EXIST”
         FILE ....USER.DBF
         FILE ...USER.TXT
         ...
    好难哟