sqlstr := ''insert into OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="''+trim(tesedit1.Text)+''";User ID=Admin;Password='')...student_t '';sqlstr := sqlstr+'(id,name,sex,years,ban,school,flag,grad) select id,name,sex,years,school,flag,grad from student_t where flag=1';adocommand1.CommandText := sqlstr;adocommand1.Execute;运行老是报错!望各位高手帮忙!!谢谢!!!

解决方案 »

  1.   

    其实就是最外层的就是单引号'单引号中间如果存在字符串的话则是双引号''''双引号来完成或者单引号中的字符串用quotedstr来转换,例如:adoquery1.sql.text:='select * from product where Snumber='+QuotedStr(edit1.Text);
      

  2.   

    里面的, 用''代替'如你的 sqlstr := ''insert into OpenDataSource
    应该改为: sqlstr := '''insert into OpenDataSource
      

  3.   

    sqlstr := '''insert into OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''DataSource="'''+quotedstr(tesedit1.Text)+'''";User ID=Admin;Password='')...student_t ''';改成这样了,还是不行啊
      

  4.   

    'insert into OpenDataSource(''Microsoft.Jet.OLEDB.4.0,DataSource='''+quotedstr(tesedit1.Text)+';User ID=''Admin'';Password='''')...student_t';
      

  5.   

    深思不解大哥,还是不行啊。
    这句的原型是:insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名 (列名1,列名2) select 列名1,列名2  from  sql表,语句在sql server 查询分析器里运行良好,可是在delphi中加引号就出了问题。
      

  6.   

    用配置文件读取吧写连接信息到文件:
    procedure Tf_dblink.suiButton1Click(Sender: TObject);
    var
      sServer,sDatabase,sUser,sPassword : String;
    begin
        sServer := suiedit1.Text;
        sDatabase := suiedit2.Text;
        sUser := suiedit3.Text;
        sPassword := suiedit4.Text;
        myinifile.WriteString('dblinkstr','Data Source',sserver);
        myinifile.WriteString('dblinkstr','Initial Catalog',sdatabase);
        myinifile.WriteString('dblinkstr','User ID',suser);
        myinifile.WriteString('dblinkstr','Password',spassword);
    end;从配置文件读:
    procedure Tf_main.FormCreate(Sender: TObject);
    var filename:string;
         sserver,sdatabase,suser,spassword:string;
           firststart,jlsj:string; //试用
    begin
    //读取INI文件的数据库连接信息
        filename:=Extractfilepath(paramstr(0))+'dblink.ini';
        myinifile:=tinifile.Create(filename);
        sserver := myinifile.ReadString('dblinkstr','Data Source','');
        sdatabase := myinifile.ReadString('dblinkstr','Initial Catalog','');
        suser := myinifile.ReadString('dblinkstr','User ID','');
        spassword := myinifile.ReadString('dblinkstr','Password','');//写连接字符串
        ADOConnection1.Connected:=false;
        ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=' + spassword + ';Persist Security Info=True;User ID=' + suser + ';Initial Catalog=' + sdatabase + ';Data Source=' + sserver;
    //准备连接
    try
        ADOConnection1.Connected:=true;
    except
        begin
        showmessage('数据库连接失败,请检查dblink.ini文件中的连接信息的设置是否正确!');
        f_dblink:= Tf_dblink.Create(self);
        f_dblink.ShowModal;
        end;
    end;
      

  7.   

    给你一个建议,用format 别用+