这样试试 for iTemp :=0 to ListBox1.Items.Count -1 do begin adoRetriveTable.LoadFromFile(ExtractFilePath(Paramstr(0))+'RetriveData\'+FileListBox1.Items.Strings[iTemp]);//此处出问题 adoRetriveTable.Edit; adoRetriveTable.Post; end; end;
我已经在这之前通过如下处理 for iTemp := 0 to FileListBox1.Items.Count-1 do begin iSpoint:=pos('.',FileListBox1.Items.Strings[iTemp]); sTableName := FileListBox1.Items.Strings[iTemp]; delete(sTableName,iSPoint,length(sTablename)); ListBox1.Items.Add(sTableName); end; 全部都是表名了
这样不行?只能打开第一个表? for iTemp :=0 to ListBox1.Items.Count -1 do begin adoRetriveTable.LoadFromFile(ExtractFilePath(Paramstr(0))+'RetriveData\'+FileListBox1.Items.Strings[iTemp]);//此处出问题 end; end;
zhhc(zhhc) 回复于2001-8-31 11:37:53 这样不行?只能打开第一个表? for iTemp :=0 to ListBox1.Items.Count -1 do begin adoRetriveTable.LoadFromFile(ExtractFilePath(Paramstr(0))+'RetriveData\'+FileListBox1.Items.Strings[iTemp]);//此处出问题 end; end;
只能对一个表操作,改变tablename时必须open和close,第二次open时就出错了
你好像还是只用了一个表吧, 我的意思是在设一个表如adoTable1吧 for iTemp :=0 to ListBox1.Items.Count -1 do begin adoRetriveTable.LoadFromFile(ExtractFilePath(Paramstr(0))+'RetriveData\'+FileListBox1.Items.Strings[iTemp]);//此处出问题 //在此以adoRetriveTable的结构和数据来创建adoTable1
begin
adoRetriveTable.Active := false ;
adoRetriveTable.TableName := ListBox1.Items.Strings[iTemp];
adoRetriveTable.Active := true ;
adoRetriveTable.LoadFromFile(ExtractFilePath(Paramstr(0))+'RetriveData\'+FileListBox1.Items.Strings[iTemp]);//此处出问题
adoRetriveTable.Edit;
adoRetriveTable.Post;
end;
end;就是这一段
ExtractFilePath(Paramstr(0))+'RetriveData\'+FileListBox1.Items.Strings[iTemp]
是不是你要的那个路径下的文件~~
我跟踪过了,没有问题
问题出现在loadfromfile这一句上,完了完了
今天最后一天
搞不定就s翘翘了各位高手help me啊
adoRetriveTable.TableName := ListBox1.Items.Strings[iTemp];
你看看ListBox1.Items.Strings[iTemp]的值是一个合法的表名吗?
返回的是正确的表名zhhc(zhhc)你说的不设表名是什么意思?
我试着用adodataset来完成,
第一次loadfromfile没有出错,但是post不进去,
第二次就出错,说什么表名无法被找到
for iTemp :=0 to ListBox1.Items.Count -1 do
begin
adoRetriveTable.LoadFromFile(ExtractFilePath(Paramstr(0))+'RetriveData\'+FileListBox1.Items.Strings[iTemp]);//此处出问题
adoRetriveTable.Edit;
adoRetriveTable.Post;
end;
end;
会发现变成文件名了。
for iTemp := 0 to FileListBox1.Items.Count-1 do
begin
iSpoint:=pos('.',FileListBox1.Items.Strings[iTemp]);
sTableName := FileListBox1.Items.Strings[iTemp];
delete(sTableName,iSPoint,length(sTablename));
ListBox1.Items.Add(sTableName);
end;
全部都是表名了
但是用LoadFromFile好像不行
而是没有办法使用loadfromfile方法顺序读取目标表[表名和数量都是随着数据变化情况变化]
然后根据这样来创建新表,应该可以吧。
现在是卡在无法通过for循环listbox读取打开表,第一个没有问题,第二个就出现错误
for iTemp :=0 to ListBox1.Items.Count -1 do
begin
adoRetriveTable.LoadFromFile(ExtractFilePath(Paramstr(0))+'RetriveData\'+FileListBox1.Items.Strings[iTemp]);//此处出问题
end;
end;
运到了
这样不行?只能打开第一个表?
for iTemp :=0 to ListBox1.Items.Count -1 do
begin
adoRetriveTable.LoadFromFile(ExtractFilePath(Paramstr(0))+'RetriveData\'+FileListBox1.Items.Strings[iTemp]);//此处出问题
end;
end;
只能对一个表操作,改变tablename时必须open和close,第二次open时就出错了
我的意思是在设一个表如adoTable1吧
for iTemp :=0 to ListBox1.Items.Count -1 do
begin
adoRetriveTable.LoadFromFile(ExtractFilePath(Paramstr(0))+'RetriveData\'+FileListBox1.Items.Strings[iTemp]);//此处出问题
//在此以adoRetriveTable的结构和数据来创建adoTable1
end;
end;
用Trim函数试试
Trim函数是用来对字符串操作的
我这里用不上
第一次loadfromfile可以通过adotable或者adodataset访问到数据
但是第二次loadfromfile时就出现table无法被找到的错误