1,Data Module名称:DataModule1,有个ADOConnection1
已设好ConnectionString属性,LoginPrompt为True
2,主窗口Form1主要控件有:ADOStoredProc1,DataSource1,DBGrid1,MaskEdit1,Button1
都已设好属性。
按Button1调用时出错:Missing Connection or ConnectionString,但我在Form1中做一个一样的ADOConnection1来调用这个时就不会出错,这是什么原因呢?调用代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOStoredProc1.Close;
  ADOStoredProc1.Parameters.ParamByName('@pbatt').Value:=MaskEdit4.Text;
  ADOStoredProc1.Open;
end;谢谢!

解决方案 »

  1.   

    1.在form1.pas中use DatamouleMain;
    2.设置ADOStoredProc1的connection为DataMoudle中的ADOConnection1;
    3.确认在dpr中datamodule先与Form创建
      

  2.   

    我估计你的工程文件里跟我有同样的错误:打开工程文件,看一下你的dataModule窗口式否在主窗口之前创建,否则会发生你所说的错误。我查了好久才查到这个问题。
      

  3.   

    怎样改它们的顺序?
    program ProductsStaticD;uses
      Forms,
      ProductStaticU in 'ProductStaticU.pas' {Form1},
      ProductStaticU2 in 'ProductStaticU2.pas' {Form2},
      About1 in 'About1.pas' {AboutBox},
      DataForm in 'DataForm.pas' {DataModule1: TDataModule};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
      

  4.   

    怎样改它们的顺序?说明一下:这里是Form2的ADOStoredProc1调用DataModule1的ADOConnection1
    program ProductsStaticD;uses
      Forms,
      ProductStaticU in 'ProductStaticU.pas' {Form1},
      ProductStaticU2 in 'ProductStaticU2.pas' {Form2},
      About1 in 'About1.pas' {AboutBox},
      DataForm in 'DataForm.pas' {DataModule1: TDataModule};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
      

  5.   

    program PrintNamep;uses
      Forms,
      PrintName in 'PrintName.pas' {Form5},
      dmADOConnection in 'dmADOConnection.pas' {DataModule1: TDataModule};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TDataModule1, DataModule1);
      Application.CreateForm(TForm5, Form5);
      Application.Run;
    end.
    这是我的工程文件,你看看你还缺什么?
      

  6.   

    你是不是缺了Application.CreateForm(TDataModule1, DataModule1);
    并且还要放在CreatForm(TForm1,Form1)的前面。
      

  7.   

    哦,工程文件是少了Application.CreateForm(TDataModule1, DataModule1);但它提示我要输入密码?
    我已设了:LoginPrompt属性为True了