gpt4 book ai didi

c++ - TSQLQuery、TFields 和运算符 []

转载 作者:行者123 更新时间:2023-11-28 01:50:02 26 4
gpt4 key购买 nike

我有一个查询,使用像这样的 TSQLQuery

TSQLQuery* tq = new TSQLQuery(NULL);
tq->SQLConnection = atdbDM->SQLConnection1;
tq->SQL->Add("SELECT LAST_INSERT_ID();");
tq->Open();
int insert_id = tq->Fields->operator [](0)->AsInteger;

表达式

int insert_id = tq->Fields->operator [](0)->AsInteger;

非常笨重。查看实现,operator[] 在 header 中重载:

public:
TField* operator[](int Index) { return Fields[Index]; }

但是,如果我调用:

int insert_id = tq->Fields[0]->AsInteger;

我得到编译器错误:

[bcc32 Error] TRegisterFreshCSBatchForm.cpp(97): E2288 Pointer to structure 
required on left side of -> or ->*
TRegisterFreshCSBatchForm::mRegisterBtnClick(TObject *)

为什么上面的调用不能编译?我一定是错过了什么..

最佳答案

正确的语法是

int insert_id = (*tq->Fields)[0]->AsInteger;

必须有一个类对象,而不是指针,重载运算符才能启动。

关于c++ - TSQLQuery、TFields 和运算符 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43402385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com