ADO/ADOX,SPEECH 微软技术 (100分)

  • 主题发起人 主题发起人 崔占东
  • 开始时间 开始时间

崔占东

Unregistered / Unconfirmed
GUEST, unregistred user!
关于MS ADO/ADOX 和 MS Speech 的高端问题!!!
第一个问题:关于MS ADO/ADOX开发问题。
我想通过MS ADO/ADOX实现象MS ACCESS中的数据源任意链接功能。
就是说我可以通过ODBC或文件将不同的数据源连接到同一个环境中,
然后可以对这些异构数据进行操作,比如使用SQL进行联合查询等等。
第二个问题:关于语音分析问题。
我想得到一个声音文件中语音间断点,也就是自动找出声音中每
句话的起始时间点和终止时间点?(最好有源码)
 
晕,用delphi不用ado组件,不知道你想做什么:?
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1087586
如果不行,那么出错信息是什么?贴出来,好分析原因。
 
to mygod
我想动态将其他数据库中的表映射到我的ACCESS数据库中成为链接表。
 
to yzhshi
我的函数就是按那帖上改造的,但是出错,很长时间了出错信息有些忘了。
最后只能建立固定的链接,系统很不灵活。
 
我对ado 了解一般..
yzhsi 写得不错..可是好像解决不了他的这个问题...
 
用DELPHI的ADO构件呀,
ADOConnection,ADOTable,ADOQUERY等
并设置它们的ConnectionString属性来连接你想要的Access(既.MDB)
就可以了吗?
 
我觉得这个函数并没有错误,而是说这个函数能正确执行,它需要什么条件。
比如说需要安装OFFICE或需要安装高版本的MS ACCESS COMPONENT....
 
ADO组件很简单。
 
强烈关注此问题,就是因为不懂这个,我才改用odbc的
1、动态生成odbc
2、用sql语句
但是表的结构要求很严
比如目的表中有个int型的改为bigint就出错,各位DFW有什么绝招?
 
我一般先用ADOX创建数据库,
再用SQL里的'CREATE TABLE'创建表,
最后才用ADOConnection连接,
全用代码完成,很方便
 
动态配置ado
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1260402
 
to 金风细雨
是否可以使用SQL创建链接表。如果可以,能否发过来代码。c_delphi@cmmail.com
 
如果在你自己的计算机上没有问题,我估计是你安装的那台计算机的Ado的版本比较低
所至。
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%S'
修改为
'Provider=Microsoft.Jet.OLEDB.3.51;Data Source=%S'
试试。
 
procedure CreateDatabase(varMDBFile);
var
ADOXCatalog:Variant;
ConnString:String;
begin
ConnString:='Provider=Microsoft.Jet.OLEDB.4.0;'
+'Data Source='+varMDBFile;
{创建数据库}
ADOXCatalog:=CreateOleObject('ADOX.Catalog');
//创建 ADOX.Catalog 对象
ADOXCatalog.Create(ConnString);
//生成数据库文件
ADOXCatalog:=Unassigned;
end;

procedure CreateODBC(varODBCName,varMDBName:String);
var
reg:TRegistry;
begin
reg:=TRegistry.Create();
//创建 TRegistry 对象
reg.RootKey:=HKEY_LOCAL_MACHINE;
//设置根目录
if reg.OpenKey('SOFTWARE/ODBC/ODBC.INI/ODBC Data Sources',True) then
//打开指定路径
begin
reg.WriteString(varODBCName,'Microsoft Access Driver (*.mdb)');
reg.CloseKey;
end;
if reg.OpenKey('SOFTWARE/ODBC/ODBC.INI/'+varODBCName,True) then
begin
reg.WriteString('DBQ',varMDBName);
reg.WriteString('Description','说明一');
reg.WriteString('Driver','C:/WINDOWS/System32/odbcjt32.dll');
reg.WriteInteger('DriverId',$19);
reg.WriteString('FIL','MS Access;');
reg.WriteInteger('SafeTransactions',$0);
reg.WriteString('UID','');
reg.CloseKey;
end;
if reg.OpenKey('SOFTWARE/ODBC/ODBC.INI/'+varODBCName+'/Engines',True) then
reg.CloseKey;
if reg.OpenKey('SOFTWARE/ODBC/ODBC.INI/'+varODBCName+'/Engines'+'/Jet',True) then
begin
reg.WriteString('ImplicitCommitSync','Yes');
reg.WriteInteger('MaxBufferSize',$800);
reg.WriteInteger('PageTimeout',$5);
reg.WriteInteger('Threads',$3);
reg.WriteString('UserCommitSync','Yes');
reg.CloseKey;
end;
reg.Free;
//释放 TRegistry
end;

procedure CreateDataTable(AmdbFile:String);
var
ADODBConnection:Variant;
ConnString:String;
begin
ConnString:='Provider=Microsoft.Jet.OLEDB.4.0;'
+'Persist Security Info=False;'
+'Data Source='+AmdbFile;
ADODBConnection:=CreateOleObject('ADODB.Connection');
//创建 ADODB.Connection
ADODBConnection.Open(ConnString);
//连接数据库
ConnString:='CREATE TABLE InfoManu([ManuID] BYTE, [ManuName] CHAR(50))';
ADODBConnection.Execute(ConnString);
//
ADODBConnection.Close;
//断开数据库
ADODBConnection:=Unassigned;
end;
 
为什么非得要把一个表链接到当前库呀,没有必要呀!
要想访问另一个库里的数据吗,完全可以办到呀!如果是这样的话,请Email
grandbaiyi@sina.com
 
to Grandboy
你有过这样的经历吗?比如我的项目是一个异构平台,后台DB是MS SQL和ORACLE
分别保存和我相关业务的数据。现在我想查询一下,符合MS SQL中条件的ORACLE中的
记录信息。你怎么做?
 
我得前台是vb,数据库是postgresql,道官方网上下载的ODBC
 
to baobaox
postgresql是种什么数据库,我刚认识它。
 
to 崔占东 :
你的问题恐怕没有好办法吧。两种数据系统都不一样,怎么进行查询呀!
为什么要用两种数据库系统呀,是不是用户要求的?如果我碰到这种情况就想办法把一个数据库
中数据导出成中间格式,然后再导入另一个库中用。如果你找到什么好办法,不请告诉我一下。

 
后退
顶部