本帖最后由 cockhorseman 于 2009-12-11 14:59:06 编辑

解决方案 »

  1.   

    查询你的showmessage(adoquery1.ConnectionString)看看,是不是连接字符串有问题?估计是你的连接字符串有问题。
      

  2.   

    function getsqlserver():string;//获取服务器 
    var 
      ifile:TInifile; 
    begin 
      if  fileexists('c:\windows\sqlset.ini')  then 
      begin 
      ifile:=Tinifile.create('c:\windows\sqlset.ini') ; 
      try 
        result:=ifile.readstring('SQL','str',''); 
        ifile.Free; 
      except 
        showmessage('请配置服务器!'); 
        form1.Close; 
      end; 
      end; 
    end;上面的代码内存泄露:try-Except里面如果真有异常,那么这个iFile是没有机会释放了。procedure TForm2.FormCreate(Sender: TObject); 
    begin 
    adoquery1.Connection.Close; 
    adoquery1.ConnectionString:='Provider=SQLOLEDB.1;User ID=sa;Initial Catalog=MK_DB;Data Source='+getsqlserver; 
    adoquery1.Connection.Open; 
    end;字符串在''之间是需要加''''的,貌似User ID = ''sa'',你细细看下错误提示,这个应该会提示出来的
      

  3.   

    form1.Close; form1是在哪儿?
      

  4.   

    你的应该是form2吧
    procedure TForm2.FormCreate(Sender: TObject);把form1改为form2
      

  5.   

    我也是菜鸟,无能为力,sorry!
      

  6.   


    procedure TForm2.FormCreate(Sender: TObject); 
    begin 
    //adoquery1.Connection.Close; 
    adoquery1.Close; 
    adoquery1.ConnectionString:='Provider=SQLOLEDB.1;User ID=sa;Initial Catalog=MK_DB;Data Source='+getsqlserver; 
    //adoquery1.Connection.Open; 
    adoquery1.Open;
    end; 
      

  7.   

    请高手指点下,数据库添加数据总是提示添加失败
     if Edit1.Text='' then
       begin
         MessageBox(Handle,'房间号不能为空','警告!',MB_OK + MB_ICONWARNING);
          Edit1.SetFocus;
          Exit;
       end;
       if Edit2.Text='' then
        begin
          MessageBox(Handle,'楼层数不能为空','警告!',MB_OK + MB_ICONWARNING);
          Edit2.SetFocus;
          Exit;
        end;
        if Edit3.Text='' then
        begin
          MessageBox(Handle,'开始房间不能为空','警告!',MB_OK + MB_ICONWARNING);
          Edit3.SetFocus;
          Exit;
        end;
        if Edit4.Text= '' then
          begin
             MessageBox(Handle ,'结束房间不能为空','警告', MB_OK + MB_ICONWARNING);
              Edit4.SetFocus;
              Exit;
          end;
          if Edit5.Text='' then
            begin
                MessageBox(Handle,'房间价格不能为空','警告!',MB_OK + MB_ICONWARNING);
                 Edit5.SetFocus;
                 Exit;
            end;
            if Edit6.Text= '' then
               begin
                 MessageBox(Handle,'每舍人数不能为空','警告',MB_OK + MB_ICONWARNING);
                  Edit6.SetFocus;
                  Exit;
               end;
               try
               with FrmCSh.ADOQuery1 do
                  begin
                    FrmCSh.ADOQuery1.Close;
                    FrmCSh.ADOQuery1.SQL.Clear;
                    FrmCSh.ADOQuery1.SQL.Text:='insert into 宿舍管理  (lfhao,lfceng,ksfjian,jsfjian,fjjge,msrshu)values (:lfhao,:lfceng,:ksfjian,:jsfjian,:fjjge,:msrshu)';
                    FrmCSh.ADOQuery1.Parameters.ParamByName('lfhao').Value:=Trim(Edit1.Text);
                    FrmCSh.ADOQuery1.Parameters.ParamByName('lfceng').Value:=Trim(Edit2.Text);
                    FrmCSh.ADOQuery1.Parameters.ParamByName('ksfjian').Value:=Trim(Edit3.Text);
                    FrmCSh.ADOQuery1.Parameters.ParamByName('jsfjian').Value:=Trim(Edit4.Text);
                    FrmCSh.ADOQuery1.Parameters.ParamByName('fjjge').Value:=Trim(Edit5.Text);
                    FrmCSh.ADOQuery1.Parameters.ParamByName('msrshu').Value:=Trim(Edit6.Text);                ExecSQL;
                    end;
                      Application.MessageBox('添加成功','提示',64)
                    except
                      Application.MessageBox('添加失败','提示',64)
                      end;
    end;