致Afic王先生,你好,请教一个ADO的问题
这个问题已经困扰我很久了,以前一直都是让客户用XP系统,现在不行了,这个问题是关于PB和ADO的RecordSet的问题
原来我的一个项目使用了一个OCX控件,这个控件原来是给VC和VB使用的,也兼容PB,但是里面对于数据的传递是ADO的RecordSet的方法,因此为了实现我的项目需要,我原来的代码是
RESULTSET lrs_DataSet
lds_DataStore.GenerateResultSet(REF lrs_DataSet,Primary!) //这句代码在XP下完全正确,但是Win7有问题,Win7下总是返回-1,这个是PB里面关于PB的DataWindow和ADO的RecordSet做交互的唯一方法,
ADORESULTSET ladors_DataSet
ladors_DataSet=CREATE ADORESULTSET
ladors_DataSet.SetResultSet(lrs_DataSet)
MyOCX.GetDataSet(ladors_DataSet)
DESTROY ladors_DataSet
现在的问题出在了在Win7下,PB的GenerateResultSet()无法正确生成DataSet,怀疑是兼容不够或者是Win7的ADO和XP的不一样导致失败,这样我的OCX就得不到正确数据了
为此我尝试了曲线救国,用OLEObject来实现,但是关于PB调用ADO的资料太少了,无从入手,我只知道
OLEOBJECT loo_Object
loo_Object=CREATE OLEOBJECT
loo_Object.ConnectToNewObject("ADODB.RecordSet")
但是里面的字段和数据如何填充完全不知道
我也想过用Delphi做一个DLL来中转,但是Delphi我不大会,现在想请教王先生的是
如何用PB的OLEOBJECT实现创建一个ADORecordSet,并且指定字段和填充数据集,有点类似Delphi或者.NET的内存数据集,也类似PB的外部数据源
如果有其他知道的朋友麻烦指点一二