读书人

求高手讲DEPHI 代码转BCB代码。该如何

发布时间: 2012-03-12 12:45:33 作者: rapoo

求高手讲DEPHI 代码转BCB代码。。。。。。。。急
procedure TForm1.Button5Click(Sender: TObject);
var i,tag:integer;// 定义整型变量 i,tag
sqlTest,sWtest,sub:String;
begin
i:=0;
strWhere:='';
while i<Listbox2.Items.Count do
begin
if strWhere='' then
begin
sWtest:='WHERE 条件 like '+'''%'+ListBox2.Items[i]+'%'' ';
sWtest:=sWtest+'and '+'条件 not like ''%不'+ListBox2.Items[i]+'%'' ';
sqlTest:=sql+sWtest;
tag:=0;
if Query1.Active then query1.Close;
query1.SQL.Clear;
query1.SQL.Add(sqlTest);
query1.Active:=true;
query1.First;
while not query1.Eof do
begin
if(Pos('类',query1.fieldbyname('结论').asString)<>0)then
begin
if strWhere='' then strWhere:='WHERE 条件 like '+'''%'+query1.fieldbyname('结论').asString+'%'' '
else strWhere:=strWhere+'or 条件 like '+'''%'+query1.fieldbyname('结论').asString+'%'' ';
tag:=1;
end;
query1.Next;
end;


[解决办法]

C/C++ code
AnsiString   strWhere,sql;void __fastcall TForm1::btn1Click(TObject *Sender){int  i,tag;// 定义整型变量 i,tag  AnsiString sqlTest,sWtest,sub;  i=0;  strWhere="";  while( i<lst1->Items->Count)   {  if (strWhere=="")    {   sWtest = "WHERE 条件 like '%" + lst1->Items->Strings[i]  +"%'";   sWtest = sWtest+"and 条件 not like '%不" + lst1->Items->Strings[i]+"%'";   sqlTest =sql + sWtest;   tag=0;  if (qry1->Active)  qry1->Close() ;  qry1->SQL->Clear();  qry1->SQL->Add(sqlTest);  qry1->Active=true;  qry1->First();  while(!qry1->Eof )   {   if((qry1->FieldByName("结论")->AsString).Pos("类"))     {   if (strWhere=="")    strWhere ="WHERE 条件 like '%" + qry1->FieldByName("结论")->AsString+"%'";    else strWhere = strWhere+"or 条件 like '%"+qry1->FieldByName("结论")->AsString+"%'";  tag=1;     }  qry1->Next();   }   }  }}
[解决办法]

[解决办法]
这个你最好是读懂了以后用bcb重写,我只保证语法编译正确,结果就不保证了。
C/C++ code
AnsiString   strWhere,sql; 
void __fastcall TForm1::btn1Click(TObject *Sender)
{
int i,tag;// 定义整型变量 i,tag
AnsiString sqlTest,sWtest,sub;
i=0;
strWhere="";
while( i <lst1->Items->Count)
{
if (strWhere=="")
{
sWtest = " WHERE 条件 like '%" + lst1->Items->Strings[i] +"%'";
sWtest = sWtest+" and 条件 not like '%不" + lst1->Items->Strings[i]+"%'";
sqlTest =sql + sWtest;
tag=0;
if (qry1->Active) qry1->Close() ;
qry1->SQL->Clear();
qry1->SQL->Add(sqlTest);
qry1->Active=true;
qry1->First();
while(!qry1->Eof )
{
if((qry1->FieldByName("结论")->AsString).Pos("类"))
{
if (strWhere=="")
strWhere =" WHERE 条件 like '%" + qry1->FieldByName("结论")->AsString+"%'";
else strWhere = strWhere+" or 条件 like '%"+qry1->FieldByName("结论")->AsString+"%'";
tag=1;


}
qry1->Next();
}
//
if(tag==0)
{
strWhere = " WHERE 条件 like '%"+ lst1->Items->Strings[i]+"%'";
strWhere = strWhere+" and 条件 not like '%不"+ lst1->Items->Strings[i]+"%'";
}
}
else
{
sWtest =" WHERE 条件 like '%"+ lst1->Items->Strings[i]+"%'";
sWtest=sWtest+" and 条件 not like '%不"+ lst1->Items->Strings[i]+"%'";
sqlTest=sql+sWtest;
if(qry1->Active)
qry1->Close();
qry1->SQL->Clear();
qry1->SQL->Add(sqlTest);
qry1->Active=true;
qry1->First();
tag=0;
while(!(qry1->Eof))
{
if((qry1->FieldByName("结论")->AsString).Pos("类"))
{
sub = qry1->FieldByName("结论")->AsString;
if(sub.Pos(strWhere))
{
tag=1;
break;
}
else
{
strWhere = strWhere+" and 条件 like '%"+qry1->FieldByName("结论")->AsString+"%'";
tag = 1;
}
}
qry1->Next();
}
if (tag==1)
{ i=i+1;
continue;
}
sWtest=strWhere+" and 条件 like '%"+lst1->Items->Strings[i]+"%'";
sWtest=sWtest+" and 条件 not like '%不"+lst1->Items->Strings[i]+"%'";
sqlTest=sql+sWtest;
if(qry1->Active)
qry1->Close();
qry1->SQL->Clear();
qry1->SQL->Add(sql);
qry1->Active=true;
qry1->First();
tag=0;
while(!(qry1->Eof))
{
if((qry1->FieldByName("结论")->AsString).Pos("类"))
{
strWhere = strWhere+" and 条件 like '%"+qry1->FieldByName("结论")->AsString+"%'";
tag=1;
}
qry1->Next();
}
if (tag==0)
{
strWhere = strWhere+" and 条件 like '%"+lst1->Items->Strings[i]+"%'";
strWhere =strWhere+" and 条件 not like '%不"+lst1->Items->Strings[i]+"%'";
}
}
i=i+1;
}
sql=sql+strWhere;
if(qry1->Active)
qry1->Close();
qry1->SQL->Clear();
qry1->SQL->Add(sql);
qry1->Active=true;
if (qry1->RecordCount ==1)
{
}
//
}

读书人网 >C++ Builder

热点推荐