当我的查询存储在XML文件中时,如何检查数据库列是否存在?

时间:2017-04-19 09:30:14

标签: c++ sql xml database c++builder

我正在使用C ++ Builder开发项目。我需要创建一个程序,允许用户检查数据库(Firebird或SQL Server)的结构是好还是坏。

我有很多用于Firebird的XML文件,我有很多用于SQL Server的XML文件。在这些文件中定义了许多SQL查询。

我想要实现的想法是使用data-type执行每个查询。如果表的结构有任何问题,ExecSQL()会抛出错误的所有细节,我只需要收集所有错误消息并生成报告PDF。

我在XML文件中的查询类型包括ExecSQL()ALTERINSERT

执行CREATE时,如果表不存在,我可以执行查询,但是如果表存在且存在不存在的列,则从{{1}获取错误只告诉我表存在,但没告诉我列缺失。

例如,如果我有这个SQL代码:

CREATE

连接数据库并执行查询后,有3种情况:

  • 如果表格不存在,ExecSQL()运行没有问题。

  • 如果表存在并且我需要创建的所有列都已存在,则我得到的例外是CREATE TABLE CUSTOMERS(ID INT NOT NULL, NAME VARCHAR (20) NOT NULL);

  • 如果表存在且一个或多个列不存在,则我获得的异常为ExecSQL()。它没有告诉我有关色谱柱的信息。

0 个答案:

没有答案