Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查MySql数据库中是否存在表?_Mysql_Database_Vb6_Odbc_Ado - Fatal编程技术网

如何检查MySql数据库中是否存在表?

如何检查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

我有一个VB6应用程序,我想检查phpmyadmin上的MySQL数据库中是否存在表。实际上,表实际上是一个视图,但它的行为应该与它自己的表完全相同

我目前拥有的代码经常返回false

我认为我的问题可能与变量cnDataStoreToVerify有关,因为当我试图打印其内容时,它只包含: “Provider=MSDASQL.1;”

非常感谢您的帮助

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;哪一种不是正确的连接字符串格式?