MYSQL 应用十分广范,很多网站几乎都在用他,因为他的小巧和灵活性等方面让我决定要对他进行研究,到现在已经成功的不用经过ODBC,ADO等方式就可以读取和更新数据。
好了不多罗嗦,以下我来介绍总个程序的细节:
(一)API声明
1. '分配或初始化适合mysql_real_connect()的一个MYSQL对像。
Public Declare Function mysql_init Lib "libmySQL" (ByVal lMysql As Long) As Long
2. '关闭一个以前打开了的连接
Public Declare Sub mysql_close Lib "libmySQL" (ByVal lMysql As Long)
3. '能用於设置额外连接选项并且影响一个连接的行为。
'这个函数可以被多次调用来设置多个选项。
'mysql_options()应该在mysql_init()之後和mysql_connect()或mysql_real_connect()之前调用。
'option参数是你想要设置的选项;
'arg 参数是选项的值。如果选项是一个整数,那麽arg应该指向整数值。
Public Declare Function mysql_options Lib "libmySQL" _
(ByVal lMysql As Long, _
ByVal lOption As Long, _
ByVal sArg As String) As Long
4. 设置客户端访问的字符集 (这个很重要,访问中文时一定要用这个)
Public Declare Function mysql_set_character_set Lib "libmySQL" (ByVal lMysql As Long, ByVal cs_name As String) As Long
5.联接数据库
Public Declare Function mysql_real_connect Lib "libmySQL" _
(ByVal lMysql As Long, _
ByVal sHostName As String, _
ByVal sUserName As String, _
ByVal sPassword As String, _
ByVal sDbName As String, _
ByVal lPortNum As Long, _
ByVal sSocketName As String, _
ByVal lFlags As Long) As Long
6.执行查询操作
Public Declare Function mysql_query Lib "libmySQL" _
(ByVal lMysql As Long, ByVal sQueryString As String) As Long
7. 获取查询的结果集
Public Declare Function mysql_affected_rows Lib "libmySQL" (ByVal lMYSQL_RES As Long) As Long
Public Declare Sub mysql_data_seek Lib "libmySQL" _
(ByVal lMYSQL_RES As Long, ByVal lOffset As Currency)
Public Declare Function mysql_fetch_field_direct Lib "libmySQL" _
(ByVal lMYSQL_RES As Long, ByVal lFieldNum As Long) As Long
Public Declare Function mysql_fetch_lengths Lib "libmySQL" (ByVal lMYSQL_RES As Long) As Long
Public Declare Function mysql_fetch_row Lib "libmySQL" (ByVal lMYSQL_RES As Long) As Long
Public Declare Function mysql_field_count Lib "libmySQL" (ByVal lMysql As Long) As Long
Public Declare Sub mysql_free_result Lib "libmySQL" (ByVal lMysql As Long)
Public Declare Function mysql_info Lib "libmySQL" (ByVal lMysql As Long) As Long
Public Declare Function mysql_insert_id Lib "libmySQL" (ByVal lMysql As Long) As Long
Public Declare Function mysql_num_fields Lib "libmySQL" (ByVal lMYSQL_RES As Long) As Long
Public Declare Function mysql_num_rows Lib "libmySQL" (ByVal lMYSQL_RES As Long) As Long
Public Declare Function mysql_store_result Lib "libmySQL" (ByVal lMysql As Long) As Long
Public Declare Function mysql_use_result Lib "libmySQL" (ByVal lMysql As Long) As Long
8. 出错信息获取
'status and error-reporting routines
Public Declare Function mysql_errno Lib "libmySQL" (ByVal lMysql As Long) As Long
Public Declare Function mysql_error Lib "libmySQL" (ByVal lMysql As Long) As Long
9. MYSQL 字段结构
Public Type typ_MYSQL_FIELD
FieldName As Long '字段名称,由Null终结的字符串。如果用AS子句为该字段指定了别名,名称的值也是别名。
org_Name As Long '段名称,由Null终结的字符串。忽略别名。
Table As Long '包含该字段的表的名称,如果该字段不是计算出的字段的话。对于计算出的字段,表值为空的字符串。如果用AS子句为该表指定了别名,表的值也是别名。
org_table As Long '表的名称,由Null终结的字符串。忽略别名。
Db As Long '字段源自的数据的名称,由Null终结的字符串。如果该字段是计算出的字段,db为空的字符串。
Catalog As Long 'catalog名称。该值总是"def"。
Def As Long '该字段的默认值,由Null终结的字符串。仅当使用mysql_list_fields()时才设置它。
Length As Long '字段的宽度,如表定义中所指定的那样。
Max_length As Long '用于结果集的字段的最大宽度(对于实际位于结果集中的行,最长字段值的长度)。如果使用mysql_store_result()或mysql_list_fields(),它将包含字段的最大长度。如果使用mysql_use_result()