0

由于缺乏有关在 internetz 上使用 DAO 和 C++ 的信息,我感到非常恼火。因为我有事情要解决,所以我不得不摆弄它,我正在考虑跳出窗户:)

我发现的唯一例子是 VB6、VB.Net 和 VBA 相关的。我试图将它们应用于 C++ 并有以下内容

...    
WideString sqlQuery = WideString(
                "SELECT * "\
                "FROM NODES "\
                "WHERE ID = " + IntToStr(NODE_ID));

        Dao_2k::RecordsetPtr pNewRecord;
        pNewRecord = m_dbDatabase->OpenRecordset(sqlQuery.c_bstr(), OleVariant(RecordsetTypeEnum::dbOpenDynaset));
...

但它只是不想工作。我首先尝试仅使用 sql 查询,然后添加dbOpenDynaset设置并尝试其他设置。但执行只是停止。我在想 C++ 中的函数可能需要更多变量,OpenRecordset但 IDE 没有关于它的文档,所以我有点摸不着头脑。

选择实际上将包含一些连接,但我将其剥离以查看是否是问题所在。但是这个简单和更复杂的查询都在 Access 中执行。

4

1 回答 1

0

我使用 VB 教程和其他一些资源中描述的一些原则让它工作。像这样的东西应该工作。

WideString sqlQuery = WideString(
            "SELECT * FROM NODES "\
            "WHERE ID = " + IntToStr(NODE_ID));

Dao_2k::RecordsetPtr pRecord;
pRecord = m_dbDatabase->OpenRecordset(sqlQuery.c_bstr(), OleVariant(RecordsetTypeEnum::dbOpenDynaset));

Dao_2k::FieldsPtr fs;
fs = pEntryRecord->get_Fields();

Dao_2k::FieldPtr nodeIdField;
nodeIdField = fs->get_Item(OleVariant(0));

尽管Access在处理 SQL 语法方面很糟糕。JOINS需要一组奇怪的括号,我还不能让它做一个UNION :)

于 2012-05-21T08:11:26.200 回答