"C.R. Vegelin" <[EMAIL PROTECTED]> wrote on 10/01/2005 03:51:41 AM:

> Hi List,
> 
> I want to call the C API functions from Visual Basic in MS Access 2003.
> I assume that I have to use: "c:\Program Files\MySQL\MySQL Server 4.
> 1\Bin\LibMySQL.dll".
> In my code at module level I have included various code lines to 
> declare entry-points, such as:
> Declare Function mysql_info Lib "c:\Program Files\MySQL\MySQL Server
> 4.1\Bin\LibMySQL.dll" ()
> Declare Function mysql_stat Lib "c:\Program Files\MySQL\MySQL Server
> 4.1\Bin\LibMySQL.dll" ()
> 
> After making an ADODB.Connection and running a query succesfully, I 
> want to call mysql_info().
> The syntax in C language for this function is: char *mysql_info(MYSQL 
*mysql)
> 
> My question: how to call mysql_info() from Visual Basic ?
> When I use: myString = mysql_info() it returns an empty string.
> 
> My system includes: Windows XP, MySQL 4.1.13 and MyODBC 3.51.11.
> 

To answer the question in your subject: you are already doing that 
correctly. You have selected which library you want to use and are 
declaring the entry points you want to use from that library. Good job. 

To see the status of an ADODB connection, you have to use ADODB functions. 
You cannot use the C API functions to check on the status of an ADODB 
process (even if they are sharing the same DLL). That is because the 
client library is thread-safe. Whatever you do in one instance of the 
library is not apparent in any other instance. Any bleed-over from one 
instance to another should be checked against the documentation and if the 
two are not in agreement, report it as a bug.

If you want to use the C API, all of your database calls (including all of 
your SQL execution) need to happen through the C API. If you want to use 
the ADODB objects, you need to connect through ADODB through ODBC and stay 
within that paradigm. You cannot mix or intermingle the two and expect it 
to work. Sorry!

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine

Reply via email to