拼凑一段代码,既不知道如何get fieldCount,也不知道复杂数据类型该如何处理; (拜托加一句{$apptype console},因为要writeln偷懒;) procedure TForm1.Button1Click(Sender: TObject); var DAO, db, recordSet: OleVariant; i: integer; begin try DAO := CreateOleObject('DAO.DBEngine.36'); db := DAO.OpenDatabase('c:\database\zjus.mdb'); //recordSet := db.OpenRecordset('zju'); recordSet := db.OpenRecordset('select top 50 * from zju'); { DAO.DbEngine.35: too old? DAO.DbEngine.36 (Jet 4.0) works (with Access2000); zjus.mdb is my database, and zju is the table name; } while (not(recordSet.EOF)) do begin for i := 0 to 3 do Write(recordSet.Fields[i].value+#9); writeln; recordSet.MoveNext; end; finally DAO := UnAssigned;; db := UnAssigned;; recordSet := UnAssigned;; end; end;p.s.连ADO都不准用,why?难不成不在windows下面混了?
并且当时我也照着试成了。只是后来怎么都找不到那段代码了。
现在我的情况十分特殊,所以不能用ADO。
(拜托加一句{$apptype console},因为要writeln偷懒;)
procedure TForm1.Button1Click(Sender: TObject);
var
DAO, db, recordSet: OleVariant;
i: integer;
begin
try
DAO := CreateOleObject('DAO.DBEngine.36');
db := DAO.OpenDatabase('c:\database\zjus.mdb');
//recordSet := db.OpenRecordset('zju');
recordSet := db.OpenRecordset('select top 50 * from zju');
{
DAO.DbEngine.35: too old?
DAO.DbEngine.36 (Jet 4.0) works (with Access2000);
zjus.mdb is my database, and zju is the table name;
}
while (not(recordSet.EOF)) do
begin
for i := 0 to 3 do
Write(recordSet.Fields[i].value+#9);
writeln;
recordSet.MoveNext;
end;
finally
DAO := UnAssigned;;
db := UnAssigned;;
recordSet := UnAssigned;;
end;
end;p.s.连ADO都不准用,why?难不成不在windows下面混了?
代码是从MSDN里面抄的VB.
为什么不能用BDE和ADO???
例如:
Use ComObj, {Access2000,}
var
AA: OleVariant; try
//创建Access Application对象,并打开Access临时数据库
AA:=CreateOleObject('Access.Application');
AA.OpenCurrentDatabase(sTempPath,false);
//进行Access表和Text文件的转换
//参数含义:1.传输类型(导入、导出等),2.带有分隔符,3.数据源,
//4.目标路径及文件名,5.字段名是否保存在文本第一行,其他参数省略
AA.DoCmd.TransferText(acExportDelim,'',sTableName,sPathNameStr,true,'',0);
AA.CloseCurrentDatabase;
except
WARNING('转换过程中发生错误!');
end;
这样的第三方控件很多.