刚刚试了一下,成功了:)写一个程序代码如下: 用到delphi默认的Dbdemo数据库,具体连接我就不罗嗦了,一个Tquery,一个Tdatasource,一个Tdbgrid放到Form1上 var ParamString:string; procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin for i:=1 to ParamCount do begin ParamString:=ParamString+#32+ParamStr(i); end; paramString:=trim(paramString); end;procedure TForm1.FormShow(Sender: TObject); begin try query1.SQL.LoadFromFile(ParamString); query1.Close; query1.Open; except showmessage('error'); end; end;-----------------------------第一个过程是读取参数,下面是关联文件procedure TForm1.BitBtn1Click(Sender: TObject); var reg:TRegistry; begin reg:=TRegistry.Create; reg.RootKey:= HKEY_CLASSES_ROOT; reg.OpenKey('\.tst',true); reg.WriteString('','tstfile'); reg.CloseKey; reg.OpenKey('\tstfile\shell\open\command',true); reg.WriteString('','c:\test.exe %1'); reg.CloseKey; reg.Free; end;---------------------------------------------------------将写好的sql语句文件保存为tst文件,将编译好的文件更名为test.exe并复制到系统路径中,比如c:\winnt目录下.双击tst文件测试
先注册扩展名,再注册关联程序
这样双击双击这个SQL文件就会启动你的程序,并以SQL文件名作为参数
用到delphi默认的Dbdemo数据库,具体连接我就不罗嗦了,一个Tquery,一个Tdatasource,一个Tdbgrid放到Form1上
var ParamString:string;
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
for i:=1 to ParamCount do
begin
ParamString:=ParamString+#32+ParamStr(i);
end;
paramString:=trim(paramString);
end;procedure TForm1.FormShow(Sender: TObject);
begin
try
query1.SQL.LoadFromFile(ParamString);
query1.Close;
query1.Open;
except
showmessage('error');
end;
end;-----------------------------第一个过程是读取参数,下面是关联文件procedure TForm1.BitBtn1Click(Sender: TObject);
var
reg:TRegistry;
begin
reg:=TRegistry.Create;
reg.RootKey:= HKEY_CLASSES_ROOT;
reg.OpenKey('\.tst',true);
reg.WriteString('','tstfile');
reg.CloseKey;
reg.OpenKey('\tstfile\shell\open\command',true);
reg.WriteString('','c:\test.exe %1');
reg.CloseKey;
reg.Free;
end;---------------------------------------------------------将写好的sql语句文件保存为tst文件,将编译好的文件更名为test.exe并复制到系统路径中,比如c:\winnt目录下.双击tst文件测试