⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitmain.cpp

📁 通过oci实现的oracle查询分析器功能和可以 尤其对BLOB字段的度曲
💻 CPP
📖 第 1 页 / 共 3 页
字号:





void __fastcall TFormmain::FormClose(TObject *Sender, TCloseAction &Action)
{
 /* unsigned long  s;
  GetExitCodeThread(Thread1Handle, &s);
  if (s == STILL_ACTIVE)
    if (TerminateThread(Thread1Handle, s))
      CloseHandle(Thread1Handle);
  ExitThread(s); */

}
//---------------------------------------------------------------------------

void __fastcall TFormmain::RichEdit1Change(TObject *Sender)
{
  long n,i,j;
  AnsiString  finds;
  j=RichEdit1->SelStart;
  RichEdit1->SelectAll();
  RichEdit1->SelAttributes->Color=clBlack;
  for (int m=0;m<ys->Count ;m++)
  {
    finds=ys->Strings[m];
    n=finds.Length();
    i=0;
    while ( i!=-1)
    {
      if (i==0)
      {
        i=RichEdit1->FindText(finds,0,RichEdit1->GetTextLen(),TSearchTypes()<<stWholeWord);

      }
      else
        i=RichEdit1->FindText(finds,i+n,RichEdit1->GetTextLen(),TSearchTypes()<<stWholeWord);
      if (i!=-1)
      {
        RichEdit1->SelStart=i;
        RichEdit1->SelLength=n;
       
        RichEdit1->SelAttributes->Color=clBlue;
        if (i==0)
          i=n;
      }
    }
  };
  RichEdit1->SelStart=j;
}
//---------------------------------------------------------------------------








void __fastcall TFormmain::PopupMenu2Popup(TObject *Sender)
{
 jbsql="";
 if (TreeView1->Selected==NULL)
    Abort();
 if (TreeView1->Selected->Level==0)
    Abort();
 if (TreeView1->Selected==NULL || (TreeView1->Selected->Level!=1 && TreeView1->Selected->Parent->Parent->Text!="索引"))
   Abort();
 if ((TreeView1->Selected->Level==1) && ((TreeView1->Selected->Parent->Text=="系统函数") ||(TreeView1->Selected->Parent->Text=="索引")))
   Abort();

 if (TreeView1->Selected->Parent->Text=="表")
 {
   jbsql=" select dbms_metadata.get_DDL('TABLE',"+QuotedStr(UpperCase(TreeView1->Selected->Text))+","+QuotedStr(UpperCase(Connectedyh))+") as jb from dual";
   return;
 }
 if (TreeView1->Selected->Parent->Text=="视图")
 {
   jbsql=" select dbms_metadata.get_DDL('VIEW',"+QuotedStr(UpperCase(TreeView1->Selected->Text))+","+QuotedStr(UpperCase(Connectedyh))+") as jb from dual";
   return;
 }
 if (TreeView1->Selected->Parent->Text=="过程")
 {
   jbsql=" select dbms_metadata.get_DDL('PROCEDURE',"+QuotedStr(UpperCase(TreeView1->Selected->Text))+","+QuotedStr(UpperCase(Connectedyh))+") as jb from dual";
   return;
 }
 if (TreeView1->Selected->Parent->Text=="自定义函数")
 {
   jbsql=" select dbms_metadata.get_DDL('FUNCTION',"+QuotedStr(UpperCase(TreeView1->Selected->Text))+","+QuotedStr(UpperCase(Connectedyh))+") as jb from dual";
   return;
 }
 if (TreeView1->Selected->Parent->Text=="包")
 {
   jbsql=" select dbms_metadata.get_DDL('PACKAGE',"+QuotedStr(UpperCase(TreeView1->Selected->Text))+","+QuotedStr(UpperCase(Connectedyh))+") as jb from dual";
   return;
 }
 if (TreeView1->Selected->Parent->Text=="同意词")
 {
   jbsql=" select dbms_metadata.get_DDL('SYNONYM',"+QuotedStr(UpperCase(TreeView1->Selected->Text))+","+QuotedStr(UpperCase(Connectedyh))+") as jb from dual";
   return;
 }
 if (TreeView1->Selected->Parent->Text=="序列")
 {
   jbsql=" select dbms_metadata.get_DDL('SEQUENCE',"+QuotedStr(UpperCase(TreeView1->Selected->Text))+","+QuotedStr(UpperCase(Connectedyh))+") as jb from dual";
   return;
 }
 if (TreeView1->Selected->Parent->Parent->Text=="索引")
 {
   jbsql=" select dbms_metadata.get_DDL('INDEX',"+QuotedStr(UpperCase(TreeView1->Selected->Text))+","+QuotedStr(UpperCase(Connectedyh))+") as jb from dual";
   return;
  }

}
//---------------------------------------------------------------------------


void __fastcall TFormmain::N2Click(TObject *Sender)
{
 if (jbsql.Length()>1)
 {
   DATABASEHANDLE        DBHandle;
   status = DBDatabase->ConnectDataBase(DBHandle);
   if( status >= 0 )
   {
     TOCIQuery * Query;
     Query = new TOCIQuery();
     Query->DBHandle= DBHandle;
     Query->AddSQL(jbsql.c_str());
     Query->ExecSQL();
     if (!Query->Eof)
     {
       Formjb=new  TFormjb(Application);
      //  FILE *fp;
     //   fp = fopen("i.txt", "wb");
       // fwrite(Query->GetFieldValueByIndex(0),strlen(Query->GetFieldValueByIndex(0)), 1 , fp);
       // fclose(fp);
      Formjb->Memo1->Lines->Add(Query->GetFieldValueByIndex(0));
   

       Formjb->ShowModal();
       Formjb->Free();
     }
     delete Query;
     DBDatabase->DisConnectDataBase(DBHandle);
   }
   else
   {
     ShowMessage( "ConnectDataBase失败\n");
     DBDatabase->DisConnectDataBase(DBHandle);
   }
 }
}
//---------------------------------------------------------------------------


void __fastcall TFormmain::FormActivate(TObject *Sender)
{
  DataConnected=false;
  Formfig=new  TFormfig(Application);
  Formfig->ShowModal();
  Formfig->Free();
   
}
//---------------------------------------------------------------------------


void __fastcall TFormmain::N4Click(TObject *Sender)
{

  Formfig=new  TFormfig(Application);
  Formfig->ShowModal();
  Formfig->Free();

}
//---------------------------------------------------------------------------

void __fastcall TFormmain::N5Click(TObject *Sender)
{
 Close();        
}
//---------------------------------------------------------------------------


void __fastcall TFormmain::N7Click(TObject *Sender)
{
  FormABOUT=new  TFormABOUT(Application);
  FormABOUT->ShowModal();
  FormABOUT->Free();
}
//---------------------------------------------------------------------------

void __fastcall TFormmain::FormShow(TObject *Sender)
{

  AnsiString IniFileName=ExtractFilePath(ParamStr(0))+"paraini.ini";
  if (!FileExists(IniFileName))
  {
   Memo1->Lines->SaveToFile(IniFileName);
  }
}
//---------------------------------------------------------------------------

void __fastcall TFormmain::Panel1Resize(TObject *Sender)
{
StatusBar1->Panels->Items[0]->Width=TreeView1->Width;
}
//---------------------------------------------------------------------------

void __fastcall TFormmain::N8Click(TObject *Sender)
{
   if (DataConnected==true)
    SpeedButton1Click(Sender);
}
//---------------------------------------------------------------------------

void __fastcall TFormmain::N1Click(TObject *Sender)
{
   if (DataConnected==true)
   {
     Formjbbj=new  TFormjbbj(Application);
     for ( int i=0;i<jbm->Count ;i++)
     {

       Formjbbj->CheckListBox1->Items->Add(jbm->Strings[i]) ;
     }

     Formjbbj->ShowModal();
     Formjbbj->Free();
  }
}
//---------------------------------------------------------------------------

void __fastcall TFormmain::N9Click(TObject *Sender)
{
 AnsiString IniFileName=ExtractFilePath(ParamStr(0))+"paraini.ini";
  if (!FileExists(IniFileName))
  {
   Memo1->Lines->SaveToFile(IniFileName);
  }
 Formcongfig=new  TFormcongfig(Application);
 Formcongfig->ShowModal();
 Formcongfig->Free();
 wls(Sender);
}
//---------------------------------------------------------------------------




void __fastcall TFormmain::PopupMenu1Popup(TObject *Sender)
{
 if( ((rowiddz>-1) && (blobc->Count>0)&&(blobc->IndexOf(StringGrid2->Col-1)>=0 ))==false )
 {
  Abort();

 }
}
//---------------------------------------------------------------------------

void __fastcall TFormmain::N10Click(TObject *Sender)
{
   int cd;
   AnsiString ssss;
   Panel4->Visible=true;
   Image1->Visible =false;
   cd=txjb.Pos("where");
   if (cd>0)
    ssss=txjb.SubString(1,cd);
   else
    ssss=txjb;
   ssss=ssss+" where rowid="+QuotedStr(StringGrid2->Cells[rowiddz][StringGrid2->Row].Trim()) ;
   txcolid=StringGrid2->Col-1;
   Querytx->AddSQL(ssss.c_str());
   Querytx->ExecSQL();
   if (!Querytx->Eof)
   {
      TMemoryStream *stream= new TMemoryStream();
      TJPEGImage *Jpg= new TJPEGImage();
      stream->Clear();
      Querytx->GetBLOBFieldByIndexToSteam(txcolid,stream);
      if (stream->Size>0 )
      {
        stream->Seek(0,0);
        Jpg->LoadFromStream(stream);
        Image1->Picture->Bitmap->Assign(Jpg);
        Image1->Visible = true;
      }

      delete  stream;
      delete  Jpg;

   }

}
//---------------------------------------------------------------------------


void __fastcall TFormmain::StringGrid2SelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)
{
  if( ((rowiddz>-1) && (blobc->Count>0)&&(blobc->IndexOf(txcolid)>=0 ))==true &&txcolid>=0 && Panel4->Visible == true)
 {
  int cd;
   AnsiString ssss;
   Image1->Visible=true;
   cd=txjb.Pos("where");
   if (cd>0)
    ssss=txjb.SubString(1,cd);
   else
    ssss=txjb;
   ssss=ssss+" where rowid="+QuotedStr(StringGrid2->Cells[rowiddz][ARow].Trim()) ;
   Querytx->AddSQL(ssss.c_str());
   Querytx->ExecSQL();
   if (!Querytx->Eof)
   {
      TMemoryStream *stream= new TMemoryStream();
      TJPEGImage *Jpg= new TJPEGImage();
      stream->Clear();
      Querytx->GetBLOBFieldByIndexToSteam(txcolid,stream);
      if (stream->Size>0 )
      {
        stream->Seek(0,0);
        Jpg->LoadFromStream(stream);
        Image1->Picture->Bitmap->Assign(Jpg);
      }
      else
        Image1->Picture->Bitmap=NULL;

      delete  stream;
      delete  Jpg;

   }


 }

}
//---------------------------------------------------------------------------

void __fastcall TFormmain::FormDestroy(TObject *Sender)
{
  delete hs;
  delete ys;
  delete jbjg;
  delete jbm;
  delete blobc;
  delete Querytx;
  if (TXDBHandle.envhp!=NULL)
  DBDatabase->DisConnectDataBase(TXDBHandle);        
}
//---------------------------------------------------------------------------

void __fastcall TFormmain::N11Click(TObject *Sender)
{
Panel4->Visible=false;
}
//---------------------------------------------------------------------------

void __fastcall TFormmain::Panel4MouseMove(TObject *Sender,
      TShiftState Shift, int X, int Y)
{
   ManipulateControl(Panel4,Shift,X, Y, 10);
}
//---------------------------------------------------------------------------

void __fastcall TFormmain::hhh1Click(TObject *Sender)
{
  if (!OpenPictureDialog1->Execute())
  return;
  FileListBox1->Directory=ExtractFilePath(OpenPictureDialog1->FileName);
  DATABASEHANDLE DBHandle;



  AnsiString sql="",dd;
  status = DBDatabase->ConnectDataBase(DBHandle);
  if( Formmain->status >= 0 )
  {
    TOCIQuery * Query1;
    Query1 = new TOCIQuery();
    Query1->DBHandle   = DBHandle;
    for (int i=0;i<FileListBox1->Items->Count ;i++)
    {
      try
      {
        sql="insert into photo (id,filename,photo1) values(photow.NEXTVAL,"+QuotedStr(FileListBox1->Items->Strings[i])+",EMPTY_BLOB()) RETURNING photo1 INTO :a";
        Query1->AddSQL(sql.c_str());
        dd= FileListBox1->Directory+"\\"+FileListBox1->Items->Strings[i];
        Query1->SetBLOBParamValueFromFile(":a",dd.c_str());
        Query1->ExecSQL();
        StatusBar1->Panels->Items[1]->Text="当前导入:"+dd+" 文件";
        Application->ProcessMessages();

       }
      catch(const Exception& e)
      {
        delete Query1;
        DBDatabase->DisConnectDataBase(DBHandle);
        Application->MessageBox(e.Message.c_str(),"提示",MB_ICONERROR+MB_OK);
        Abort() ;
      }
    }
   delete Query1;
   DBDatabase->DisConnectDataBase(DBHandle);
 }
 else
 {
   ShowMessage( "ConnectDataBase失败\n");
   DBDatabase->DisConnectDataBase(DBHandle);
 }

}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -