在VB中很方便的功能,怎么到了DELPHI就不知怎么办了呢? (30分)

  • 主题发起人 主题发起人 阿魁
  • 开始时间 开始时间

阿魁

Unregistered / Unconfirmed
GUEST, unregistred user!
我要使用ADO,并且想在代码里直接声明对象变量。

在VB中这样就可以了:
1.引用Microsoft ActiveX Data Object 2.0;
2.声明变量:dim conn as adodb.connection;
3.调用conn的方法:conn.open ConnString

在delphi中,也可以引入类型库,但怎样声明变量呢?我在类型库里能看出来吗?

 
uses ADODB

procedure TForm1.Button1Click(Sender: TObject);
var
conn: TADOConnection;
begin
conn := TADOConnection.Create(Self);
conn.Open ..........
conn.Ffree;
end;
 
delphi已对ADO作了一层封装

另:可以参考一下: http://www.delphibbs.com/delphibbs/DispQ.asp?LID=671158
 
不会吧?
ADOExpress不比VB中的DIM方便?
如果你喜欢从底层干起,你也可以使用ADOX。
不过,哥哥,你还是直接用ADOExpress方便一点。
 
to xianjun:
谢谢!这种方式我也知道,但我在写代码是不会得到属性和函数的上下文提示。
我想,导入类型库后应该可以,单导入后怎样声明变量呢?

to others above:
难道你们只会用被封装的吗?没被封装的就不用了?
举个例子:我有个你从未见过的ActiveX组件,你怎么来使用呢?

我的问题不是仅对ado而言的,是对所有的activeX组件而言的。
 
我也同样有此困惑。

我想选用msde来作为系统单机版的数据库,在VB中可以这样控制,在D5中呢?
在VB中可以引用SQLDMO,使用SQLDMO.SQLSERVERS对象进行AttachDB等操作,响应的DELPHI
如何的去实现呢?
Public Function AttachDatabase(DBName As String, FileName1 As String, Filename2 As String) As Boolean
'This function attaches a database file to an SQL Server or MSDE server.
Dim ErrorString As String
Dim oSvroot As Object
Dim lsExecute

Set oSvroot = CreateObject("SQLDMO.SQLServer")
On Error GoTo AttachError

'Set the time out fairly high.
'Note this value is in seconds.
oSvroot.LoginTimeout = 60

'Connect.
oSvroot.Connect "(local)", "sa", ""

'Attach.
Call oSvroot.AttachDB(DBName, FileName1 & ", " & Filename2)
AttachDatabase = True
Exit Function
AttachError:
ErrorString = "Database failed to attach. " + Chr(13) + "SQL-DMO error: " _
+ Str(Err.Number) + " " + Err.Description
MsgBox ErrorString
AttachDatabase = False
End Function
 
to chinaplate:
我想,应该可以从导入之后的单元文件里发现声明变量的方法,我们一起研究吧。
 
导入dll或ocx就可以看到所有的属性和方法了!
 
to SuperJS:
你那是可视控件,我是指非可视的组件。
 
给你一个例子
procedure test_ado();
var
cnn,rs:variant;
strSql:string;
begin
cnn:=CreateOleObject('adodb.connection');
str:='Provider=SQLOLEDB;Data Source=you_sql_server;User ID=sa;Password=;Initial Catalog=databaseName;
cnn.Open(str);
rs:=CreateOleObject('adodb.recordset');
strSQL:='select * from TableName';
rs.open(strSQL,cnn);
while not rs.eof do
begin
//do something
end;
rs:=Unassigned;
cnn:=Unassigned; //要use Variants 文件
end;
 
接受答案了.
 
后退
顶部