📄 unitmain.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Clipbrd.hpp"
#include "values.h"
#include "Unitmain.h"
#include <stdio.h>
#include <registry.hpp>
#include "Unitcongfig.h"
#include "Unitcfg.h"
#include "Unitjb.h"
#include "Unitgy.h"
#include "Unitjbbj.h"
#include "UnitSqlExecThread.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//#pragma link "CSPIN"
#pragma resource "*.dfm"
TFormmain *Formmain;
DWORD Thread1Id=-1,Thread2Id=-1;
HANDLE Thread1Handle,Thread2Handle;
//---------------------------------------------------------------------------
__fastcall TFormmain::TFormmain(TComponent* Owner)
: TForm(Owner)
{
}
void ManipulateControl(TControl *Control,TShiftState Shift,int X, int Y, int Precision)
{
Word SC_MANIPULATE;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的最左侧**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if ((X<=Precision) && (Y>Precision) && (Y<Control->Height-Precision))
{
SC_MANIPULATE = 0xF001;
Control->Cursor= crSizeWE;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的最右侧**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else
if ((X>=Control->Width-Precision) && (Y>Precision) && (Y<Control->Height-Precision))
{
SC_MANIPULATE = 0xF002;
Control->Cursor = crSizeWE;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的最上侧**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else
if ((X>Precision) && (X<Control->Width-Precision) && (Y<=Precision))
{
SC_MANIPULATE = 0xF003;
Control->Cursor = crSizeNS;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的左上角**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if ((X<=Precision) && (Y<=Precision))
{
SC_MANIPULATE = 0xF004;
Control->Cursor = crSizeNWSE;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的右上角**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else if ((X>=Control->Width-Precision) && (Y<=Precision))
{
SC_MANIPULATE = 0xF005;
Control->Cursor = crSizeNESW ;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的最下侧**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else
if ((X>Precision) && (X<Control->Width-Precision) && (Y>=Control->Height-Precision) )
{
SC_MANIPULATE = 0xF006;
Control->Cursor = crSizeNS;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的左下角**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else
if ((X<=Precision) && (Y>=Control->Height-Precision) )
{
SC_MANIPULATE = 0xF007;
Control->Cursor = crSizeNESW;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的右下角**********************************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else
if ((X>=Control->Width-Precision) && (Y>=Control->Height-Precision))
{
SC_MANIPULATE = 0xF008;
Control->Cursor = crSizeNWSE;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//光标在控件的客户区(移动整个控件)******************************************
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else
if ((X>5) && (Y>5) &&(X<Control->Width-5) && (Y<Control->Height-5))
{
SC_MANIPULATE = 0xF009;
Control->Cursor = crSizeAll;
}
else
{
SC_MANIPULATE = 0xF000;
Control->Cursor = crDefault;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if(Shift.Contains((Classes__1)3))
{
ReleaseCapture();
Control->Perform(WM_SYSCOMMAND, SC_MANIPULATE, 0);
};
}
//---------------------------------------------------------------------------
void __fastcall TFormmain::SpeedButton1Click(TObject *Sender)
{
DATABASEHANDLE DBHandle;
if (TXDBHandle.envhp!=NULL)
DBDatabase->DisConnectDataBase(TXDBHandle);
status = DBDatabase->ConnectDataBase(TXDBHandle);
if( status >= 0 )
{
Querytx->DBHandle =TXDBHandle;
}
else
{
ShowMessage( "ConnectDataBase失败\n");
DBDatabase->DisConnectDataBase(TXDBHandle);
}
status = DBDatabase->ConnectDataBase(DBHandle);
if( status >= 0 )
{
TOCIQuery * Query3;
Query3 = new TOCIQuery();
Query3->DBHandle =DBHandle;
char sql[500];
int iP,iB;
DataConnected=false;
AnsiString tmp ="";
hs->Clear();
ys->Clear();
jbjg->Clear();
jbm->Clear();
TTreeNode *node0,*node1,*node2;
TStringList *tablename = new TStringList();
TStringList *ztname = new TStringList();
TStringList *fieldsname = new TStringList();
Query3->AddSQL(" select * from user_objects where object_type='TABLE' ");
Query3->ExecSQL();
ztname->Clear();
while (!Query3->Eof)
{
tablename->Add(Query3->GetFieldValueByName("object_NAME")) ;
ztname->Add(Query3->GetFieldValueByName("status")) ;
Query3->Next();
Application->ProcessMessages();
}
wls(Sender);
TreeView1->Items->BeginUpdate() ;
TreeView1->Items->Clear();
node0=TreeView1->Items->AddChild(NULL,"表");
node0->ImageIndex=0;
node0->SelectedIndex=0;
for(int i=0;i<tablename->Count;i++)
{
fieldsname->Clear();
node1=TreeView1->Items->AddChild(node0,tablename->Strings[i]);
jbm->Add("表:"+tablename->Strings[i]);
jbjg->Add("TABLE*"+tablename->Strings[i]);
if (ztname->Strings[i]=="VALID")
{
node1->ImageIndex=1;
node1->SelectedIndex=1;
}
else
{
node1->ImageIndex=3;
node1->SelectedIndex=3;
}
Application->ProcessMessages();
AnsiString sql=" select COLUMN_NAME from user_TAB_COLUMNS where Table_name="+ QuotedStr(tablename->Strings[i].UpperCase())+" order by Column_id";
Query3->AddSQL(sql.c_str());
Query3->ExecSQL();
while (!Query3->Eof)
{
fieldsname->Add(Query3->GetFieldValueByName("COLUMN_NAME")) ;
Query3->Next();
Application->ProcessMessages();
}
for(int j=0;j<fieldsname->Count;j++)
{
node2=TreeView1->Items->AddChild(node1,fieldsname->Strings[j]);
node2->ImageIndex=2;
node2->SelectedIndex=2;
Application->ProcessMessages();
}
}
tablename->Clear();
ztname->Clear();
Query3->AddSQL(" select * from user_objects where object_type='VIEW' ");
Query3->ExecSQL();
while (!Query3->Eof)
{
ztname->Add(Query3->GetFieldValueByName("status")) ;
tablename->Add(Query3->GetFieldValueByName("object_NAME")) ;
Query3->Next();
Application->ProcessMessages();
}
node0=TreeView1->Items->AddChild(NULL,"视图");
node0->ImageIndex=0;
node0->SelectedIndex=0;
for(int i=0;i<tablename->Count;i++)
{
Application->ProcessMessages();
fieldsname->Clear();
node1=TreeView1->Items->AddChild(node0,tablename->Strings[i]);
jbm->Add("视图:"+tablename->Strings[i]);
jbjg->Add("VIEW*"+tablename->Strings[i]);
if (ztname->Strings[i]=="VALID")
{
node1->ImageIndex=1;
node1->SelectedIndex=1;
}
else
{
node1->ImageIndex=3;
node1->SelectedIndex=3;
}
AnsiString sql=" select COLUMN_NAME from user_TAB_COLUMNS where Table_name="+ QuotedStr(tablename->Strings[i].UpperCase())+" order by Column_id";
Query3->AddSQL(sql.c_str());
Query3->ExecSQL();
while (!Query3->Eof)
{
fieldsname->Add(Query3->GetFieldValueByName("COLUMN_NAME")) ;
Query3->Next();
Application->ProcessMessages();
}
for(int j=0;j<fieldsname->Count;j++)
{
node2=TreeView1->Items->AddChild(node1,fieldsname->Strings[j]);
node2->ImageIndex=2;
node2->SelectedIndex=2;
Application->ProcessMessages();
}
}
ztname->Clear();
AnsiString sql1=" select * from user_objects where object_type='PROCEDURE'";
Query3->AddSQL(sql1.c_str());
Query3->ExecSQL();
if (!Query3->Eof)
{
node0=TreeView1->Items->AddChild(NULL,"过程");
node0->ImageIndex=0;
node0->SelectedIndex=0;
while (!Query3->Eof)
{
node1=TreeView1->Items->AddChild(node0,Query3->GetFieldValueByName("object_NAME"));
jbm->Add("过程:"+node1->Text);
jbjg->Add("PROCEDURE*"+node1->Text);
String ss=Query3->GetFieldValueByName("status");
Application->ProcessMessages();
if (ss.Trim()=="VALID")
{
node1->ImageIndex=1;
node1->SelectedIndex=1;
}
else
{
node1->ImageIndex=3;
node1->SelectedIndex=3;
}
Query3->Next();
}
};
AnsiString sql2=" select * from user_objects where object_type='FUNCTION'";
Query3->AddSQL(sql2.c_str());
Query3->ExecSQL(); ;
if (!Query3->Eof)
{
node0=TreeView1->Items->AddChild(NULL,"自定义函数");
node0->ImageIndex=0;
node0->SelectedIndex=0;
while (!Query3->Eof)
{
node1=TreeView1->Items->AddChild(node0,Query3->GetFieldValueByName("object_NAME"));
String ss=Query3->GetFieldValueByName("status");
jbm->Add("自定义函数:"+node1->Text);
jbjg->Add("FUNCTION*"+node1->Text);
if (ss.Trim()=="VALID")
{
node1->ImageIndex=1;
node1->SelectedIndex=1;
}
else
{
node1->ImageIndex=3;
node1->SelectedIndex=3;
}
Application->ProcessMessages();
Query3->Next();
}
};
if (hs->Count>0)
{
node0=TreeView1->Items->AddChild(NULL,"系统函数");
node0->ImageIndex=0;
node0->SelectedIndex=0;
for ( int j=0;j<hs->Count;j++)
{
node1=TreeView1->Items->AddChild(node0,hs->Strings[j]);
node1->ImageIndex=1;
node1->SelectedIndex=1;
Application->ProcessMessages();
}
}
Query3->AddSQL(" select * from user_objects where object_type='PACKAGE'");
Query3->ExecSQL(); ;
if (!Query3->Eof)
{
node0=TreeView1->Items->AddChild(NULL,"包");
node0->ImageIndex=0;
node0->SelectedIndex=0;
while (!Query3->Eof)
{
node1=TreeView1->Items->AddChild(node0,Query3->GetFieldValueByName("object_NAME"));
jbm->Add("包:"+node1->Text);
jbjg->Add("PACKAGE*"+node1->Text);
String ss=Query3->GetFieldValueByName("status");
if (ss.Trim()=="VALID")
{
node1->ImageIndex=1;
node1->SelectedIndex=1;
}
else
{
node1->ImageIndex=3;
node1->SelectedIndex=3;
}
Application->ProcessMessages();
Query3->Next();
}
};
Query3->AddSQL("select * from syn");
Query3->ExecSQL(); ;
if (!Query3->Eof)
{
node0=TreeView1->Items->AddChild(NULL,"同意词");
node0->ImageIndex=0;
node0->SelectedIndex=0;
while (!Query3->Eof)
{
node1=TreeView1->Items->AddChild(node0,Query3->GetFieldValueByName("synonym_name"));
node1->ImageIndex=1;
node1->SelectedIndex=1;
jbm->Add("同意词:"+node1->Text);
jbjg->Add("SYNONYM*"+node1->Text);
node2=TreeView1->Items->AddChild(node1,Query3->GetFieldValueByName("Table_name"));
node2->ImageIndex=2;
node2->SelectedIndex=2;
Application->ProcessMessages();
Query3->Next();
}
};
Query3->AddSQL("select * from user_objects where object_type='SEQUENCE'");
Query3->ExecSQL(); ;
if (!Query3->Eof)
{
node0=TreeView1->Items->AddChild(NULL,"序列");
node0->ImageIndex=0;
node0->SelectedIndex=0;
while (!Query3->Eof)
{
node1=TreeView1->Items->AddChild(node0,Query3->GetFieldValueByName("object_NAME"));
node1->ImageIndex=1;
node1->SelectedIndex=1;
jbm->Add("序列:"+node1->Text);
jbjg->Add("SEQUENCE*"+node1->Text);
Application->ProcessMessages();
Query3->Next();
}
};
AnsiString dd;
Query3->AddSQL("select * FROM USER_INDEXES order by table_name,index_name");
Query3->ExecSQL(); ;
if (!Query3->Eof)
{
node0=TreeView1->Items->AddChild(NULL,"索引");
node0->ImageIndex=0;
node0->SelectedIndex=0;
dd="";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -