如何检查MySql数据库中是否存在表?
我有一个VB6应用程序,我想检查phpmyadmin上的MySQL数据库中是否存在表。实际上,表实际上是一个视图,但它的行为应该与它自己的表完全相同 我目前拥有的代码经常返回false 我认为我的问题可能与变量cnDataStoreToVerify有关,因为当我试图打印其内容时,它只包含: “Provider=MSDASQL.1;” 非常感谢您的帮助如何检查MySql数据库中是否存在表?,mysql,database,vb6,odbc,ado,Mysql,Database,Vb6,Odbc,Ado,我有一个VB6应用程序,我想检查phpmyadmin上的MySQL数据库中是否存在表。实际上,表实际上是一个视图,但它的行为应该与它自己的表完全相同 我目前拥有的代码经常返回false 我认为我的问题可能与变量cnDataStoreToVerify有关,因为当我试图打印其内容时,它只包含: “Provider=MSDASQL.1;” 非常感谢您的帮助 Public Function TableExists(cnDataStoreToVerify As ADODB.Connection, strT
Public Function TableExists(cnDataStoreToVerify As ADODB.Connection, strTableName as String) As Boolean
Dim recTemp As ADODB.Recordset
Set recTemp = cnDataStoreToVerify.OpenSchema(adSchemaTables, Array(Empty, Empty, StrTableName, Empty))
If Not recTemp.EOF Then
TableExists = True
End If
Exit_TableExists:
m_oADOUtils.CloseRecordsetADO recTemp
End Function
你试过使用吗?我只在(MicrosoftJet)OLEDB中使用过它,而且我没有现成的MySQL数据库可供测试,您可能很幸运,可以通过以下方式支持检查表是否存在。。。等等,您在MySQL的MSDASQL提供程序上使用哪个驱动程序/连接器?否则,您可以在连接上执行SQL吗?您的用户是否具有对
信息\u SCHEMA.TABLES
的读取权限?因为您可以执行SELECT*FROM INFORMATION_SCHEMA.TABLES,其中TABLE_SCHEMA='my_db_name'和TABLE_name='my_TABLE_name'代码>并检查记录集的结果,即1个结果=表格存在,无结果=未找到表格。或者,第三个选项(迄今为止最好的一个):声明。对不起,我只是为了查看而阅读它(我不想用注释垃圾发问题…)请将前2条注释中的INFORMATION\u SCHEMA.TABLES
替换为和SHOW TABLES
。两者都需要特权。我认为这条语句可能适用于MySQL数据库,但cnDataStoreToVerify只包含Provider=MSDASQL.1;哪一种不是正确的连接字符串格式?