问题是:我调试一个播放视频文件的程序,带有网络功能(server/client),在没有安装SQL2000时,程序运行一切正常。但安装后,当我刷新数据列表时,出现MSADO15.DLL地址错误,好象说是读取了不该读取的地址。这个程序是有Delphi5做的(升级包已安装)。在未安装之前MSADO15.DLL的大小是332K,安装之后是512K,不知SQL2000在里面添加了什么,应怎样解决?请各位高手指教。再次表示感谢!
调试欢乐多
或者安装最新的ADO驱动程序2.1板,sql server2000和office2000
安装盘上都有
procedure TForm1.N1Click(Sender: TObject);
var SrChannel,srFile : TSearchRec;
Err,Err2 : integer;
ChannelPath : string;
AdoTableFiles:TADOTable;
//将VideoRoot目录下的文件导入vod.mdb中的table files中
Begin
//删除原来的记录
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from files');
ADOQuery1.ExecSQL;
ADOQuery1.Close; AdoTableFiles:= TADOTable.Create(Form1);
AdoTableFiles.Connection:=ADOConnection1;
AdoTableFiles.TableName:='files';
AdoTableFiles.active:=true; Err:=FindFirst(VideoRoot+'\*.*',faDirectory ,SrChannel) ;
While (Err = 0) do
begin
//读出一个频道名
if SrChannel.Name[1]<>'.' then
begin
ChannelPath:=VideoRoot+'\'+SrChannel.Name;
// 读出该频道下的所有文件
Err2:= FindFirst(ChannelPath+'\*.*', faAnyFile ,SrFile);
While (Err2 = 0) do
begin
If ((SrFile.Attr and faDirectory)=0) then
begin
AdoTableFiles.Insert;
AdoTableFiles.FieldByName('频道').AsString:= SrChannel.Name;
AdoTableFiles.FieldByName('文件').AsString:= SrFile.Name;
AdoTableFiles.FieldByName('节目').AsString:= SrFile.Name;
AdoTableFiles.FieldByName('大小').AsInteger:= SrFile.size;
AdoTableFiles.Post;
end;
Err2:=FindNext(SrFile) ;
end;
FindClose(SrFile);
end; Err:=FindNext(SrChannel) ;
end ;
FindClose(SrChannel); AdoTableFiles.Close;
AdoTableFiles.free; //从files 导入 programs ,channels
with ADOQuery1 do
begin
SQL.Clear;
SQL.Add('delete from channels ');
ExecSQL;
Close; SQL.Clear;
SQL.Add('insert into channels (频道) select distinct 频道 from files ');
ExecSQL;
Close; SQL.Clear;
SQL.Add('DELETE FROM programs WHERE 频道+''\''+文件 not in (select 频道+''\''+文件 from files)');
ExecSQL;
Close; SQL.Clear;
SQL.Add('INSERT INTO programs(节目,频道, 文件, 大小) '+
' SELECT files.节目, files.频道, files.文件, files.大小 '+ ' FROM files LEFT JOIN programs ON ((files.文件 = programs.文件) and (files.频道 = programs.频道))'+ ' WHERE (((programs.文件) Is Null) and ((programs.频道) Is Null)) ');
ExecSQL;
Close;
end ;
ADOConnection1.Close;
ADOConnection1.open;
if (not ADOConnection1.Connected) then ADOConnection1.Connected:=True;
AdoTablePrograms.Active:=true;
ImportChannel;
ADOTablePrograms.Refresh;
CreateMediaList;
TabSheetProgram.Show;
end;