如何使用Visual Basic 6进行MySQL查询

时间:2011-07-30 20:12:03

标签: mysql vb6

两件事:

首先:我到处搜索,包括stackoverflow。关于sql vs vb6的问题是关于连接字符串。我有这个问题。对mysql查询的任何引用都是针对查询本身的 - 但不是与vb6或任何语言相关

第二:我非常精通PHP / MySQL,所以我不寻求帮助。

我坚持的是,vb6如何处理与php不同的(很多)sql查询。所以,一旦我连接,如何告诉vb6查找字段。 php版

$sql = "SELECT * FROM table field = data where something = that";
$query = mysql_query($sql) or die("bad query: <br>$sql<br>".mysql_error());

然后使用获取数组或使用它。

这是如何在vb6中完成的?

我看到一些来源提到了rdoQry。有人可以通过示例代码阐明这一点吗?我不需要连接部分。有这个设定。 我的联系是:

Dim cnMySql As New rdoConnection
cnMySql.CursorDriver = rdUseOdbc
cnMySql.Connect = "uid=root;pwd=root;" _
    & "server=127.0.0.1;" _
    & "driver={MySQL ODBC 3.51 Driver};" _
    & "database=mydatabase;dsn=;"
cnMySql.EstablishConnection

完美无缺。

2 个答案:

答案 0 :(得分:2)

ADO是RDO的继承者。我使用类似于此的代码使用ADO从Visual Basic查询MySQL。

Dim conn As New ADODB.Connection
conn.Open "connection string"

Dim cmd As New ADODB.Command
With cmd
    .ActiveConnection = conConnection
    .CommandText = "SELECT fields FROM table WHERE condition = ?"
    .CommandType = adCmdText
End With

Dim param As New ADODB.Parameter
Set param = cmd.CreateParameter("condition", adVarChar, adParamInput, 5, "value")
cmd.Parameters.Append p

Dim rs As New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open cmd, , adOpenStatic, adLockOptimistic

Dim temp
Do While Not rs.EOF
    temp = rs("field")
    rs.MoveNext
Loop

rs.Close
conn.Close

答案 1 :(得分:0)

通常情况下,使用VB6(天哪,人们还在使用这个??),您将使用ADO连接到数据库。 ADO是一个通用的数据库类,它允许您对任何数据库使用相同的语法。

您提供的连接代码使用的是RDO,这是ADO的前身(因为VB6 / ADO现在很老了,这意味着RDO具有历史意义)。为了你的目的,两者应该工作相似,但是如果你有机会,我建议你现在切换到ADO,然后再编写太多的代码。

在撰写连接代码时,这个主题似乎指向其他人正确的方向:http://www.vbforums.com/showthread.php?t=654819

一旦建立了连接,就需要运行查询。如果您习惯于从PHP查询,那么这个过程应该是有意义的;它基本上是相同的过程,尽管你通常需要配置比PHP更多的选项。它看起来像这样:

Set rs = New ADODB.Recordset
rs.ActiveConnection = adoconn
rs.CursorLocation = adUseClient
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.Open "SELECT blah blah blah"
While Not rs.EOF
    Text1.Text = rs("Name")
    rs.MoveNext
Wend
rs.Close

希望有所帮助。