首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

麻烦大家帮看下,该怎么处理

2012-03-27 
麻烦大家帮看下Delphi(Pascal) code//delphi中procedure TDynamicSQLDemoServer.GetAllTables(var vTables

麻烦大家帮看下

Delphi(Pascal) code
//delphi中procedure TDynamicSQLDemoServer.GetAllTables(var vTables:OleVariant);var  tbllist : TStringList;  iCount : Integer;begin  try  tbllist := TStringList.Create;  ADOConnection1.GetTableNames(tbllist);  vTables := VarArrayCreate([0,tbllist.Count-1],varVariant);  for iCount :=0 to tbllist.Count-1 do  begin  vTables[iCount]=tbllist[iCount];  end;  finally  tbllist.Free;  end; end

上面是李维书上的代码,我想转为BCB的,其中的VarArrayCreate怎么转换?
BCB里面的VarArrayCreate声明:
extern PACKAGE Variant __fastcall VarArrayCreate(const int * Bounds, const int Bounds_Size, Word AVarType);


[解决办法]
http://topic.csdn.net/t/20020612/19/798760.html
参考这个
[解决办法]
翻译后,大概是这个样子:
C/C++ code
void __fastcall TDynamicSQLDemoServer::GetAllTables(Variant vTables){    TStringList *tbllist = new TStringList;    try    {        ADOConnection1->GetTableNames(tbllist);        int n[2] = { 0, tbllist->Count - 1 };        vTables = VarArrayCreate(n, 1, varVariant);        for (int iCount = 0; iCount < tbllist->Count; iCount++)        {            vTables.PutElement(tbllist->Strings[iCount], iCount);        }    }    __finally    {        delete tbllist;    }}
[解决办法]
就是获取列表名,给你段代码参考

TStringList *slt=new TStringList;
ADOConnection1->GetTableNames(slt,false);
for(int i=0;i<slt->Count;i++)
{
ShowMessage(slt->Strings[i]);
}
delete slt;

热点排行