Add files via upload
This commit is contained in:
489
L7Test/L7Test.cpp
Normal file
489
L7Test/L7Test.cpp
Normal file
@@ -0,0 +1,489 @@
|
||||
/*
|
||||
* File: L7Test.cpp
|
||||
* Author: Saleem EDAH-TALLY - nmset@netcourrier.com
|
||||
* Copyright Saleem EDAH-TALLY - © 2014
|
||||
*
|
||||
* Created on 4 juin 2014, 20:42
|
||||
*/
|
||||
|
||||
#include "L7Test.h"
|
||||
#include <LPQConnection.h>
|
||||
#include <LPQResultSet.h>
|
||||
#include <LSQConnection.h>
|
||||
#include <LSQResultSet.h>
|
||||
#include <LLightPQResultSet.h>
|
||||
#include <LLightSQResultSet.h>
|
||||
#include <LItemData.h>
|
||||
#include <wx/stdpaths.h>
|
||||
#include <wx/filename.h>
|
||||
IMPLEMENT_APP( L7Test )
|
||||
|
||||
L7Test::L7Test()
|
||||
{
|
||||
}
|
||||
|
||||
L7Test::~L7Test()
|
||||
{
|
||||
}
|
||||
|
||||
bool L7Test::OnInit() {
|
||||
L7Frame * main = new L7Frame(NULL, wxID_ANY, _T("L7 Test"));
|
||||
SetAppName(_T("L7Test"));
|
||||
SetTopWindow(main);
|
||||
main->Show();
|
||||
return true;
|
||||
}
|
||||
int L7Test::OnExit() {
|
||||
return wxApp::OnExit();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
L7Frame::L7Frame(wxWindow* parent, wxWindowID id, const wxString& title)
|
||||
: wxFrame(parent, id, title)
|
||||
{
|
||||
m_conn = NULL;
|
||||
m_rsTbl1 = NULL;
|
||||
rsTbl2 = NULL;
|
||||
colsCreated = false;
|
||||
wxBoxSizer* szMain = new wxBoxSizer(wxVERTICAL);
|
||||
SetSizer(szMain);
|
||||
|
||||
wxPanel * panConn = new wxPanel(this, wxID_ANY);
|
||||
szMain->Add(panConn, 0 , wxEXPAND, 0);
|
||||
wxBoxSizer * szConn = new wxBoxSizer(wxVERTICAL);
|
||||
panConn->SetSizer(szConn);
|
||||
const wxString b[3]{_T("Choose"), _T("PostgreSQL"), _T("SQLite")};
|
||||
rdBE = new wxRadioBox(panConn, wxID_ANY, _T("Backend"), wxDefaultPosition, wxDefaultSize, 3, b);
|
||||
szConn->Add(rdBE, 0, wxALIGN_CENTER_HORIZONTAL, 0);
|
||||
wxBoxSizer * szDoConn = new wxBoxSizer(wxHORIZONTAL);
|
||||
szConn->Add(szDoConn, 0 , wxEXPAND);
|
||||
m_txtConnInfo = new wxTextCtrl(panConn, wxID_ANY);
|
||||
szDoConn->Add(m_txtConnInfo, 1, wxALIGN_CENTRE_VERTICAL);
|
||||
wxButton * btnConn = new wxButton(panConn, wxID_ANY, _("Connect"));
|
||||
szDoConn->Add(btnConn, 0, wxALIGN_CENTRE_VERTICAL);
|
||||
wxButton * btnNewFrame = new wxButton(panConn, wxID_ANY, _T("+"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT);
|
||||
btnNewFrame->SetToolTip(_("New window"));
|
||||
szDoConn->Add(btnNewFrame, 0, wxALIGN_CENTER_VERTICAL);
|
||||
rdBE->Bind(wxEVT_RADIOBOX, &L7Frame::OnRadioConnClick, this);
|
||||
btnConn->Bind(wxEVT_BUTTON, &L7Frame::OnButtonConnectClick, this);
|
||||
btnNewFrame->Bind(wxEVT_BUTTON, &L7Frame::OnButtonNewFrameClick, this);
|
||||
|
||||
wxPanel * panTbl1 = new wxPanel(this, wxID_ANY);
|
||||
szMain->Add(panTbl1, 0, wxEXPAND, 0);
|
||||
wxBoxSizer * szTbl1 = new wxBoxSizer(wxVERTICAL);
|
||||
panTbl1->SetSizer(szTbl1);
|
||||
wxFlexGridSizer * flxszTbl1 = new wxFlexGridSizer(0, 2, 0, 0);
|
||||
flxszTbl1->AddGrowableCol(0, 1);
|
||||
flxszTbl1->AddGrowableCol(1, 3);
|
||||
szTbl1->Add(flxszTbl1, 0, wxEXPAND, 0);
|
||||
wxStaticText * lbl = new wxStaticText(panTbl1, wxID_ANY, _T("pk1"));
|
||||
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
Pk1 = new LBoundTextCtrl(panTbl1, wxID_ANY);
|
||||
Pk1->SetSQLQuote(wxEmptyString);
|
||||
flxszTbl1->Add(Pk1, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 0);
|
||||
Pk1->SetEditable(false);
|
||||
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("text1"));
|
||||
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
Text1 = new LBoundTextCtrl(panTbl1, wxID_ANY);
|
||||
flxszTbl1->Add(Text1, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 0);
|
||||
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("check1d"));
|
||||
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
Check1d = new LBoundCheckBox(panTbl1, wxID_ANY, wxCHK_2STATE);
|
||||
Check1d->SetLabel(wxEmptyString);
|
||||
flxszTbl1->Add(Check1d, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("check1t"));
|
||||
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
Check1t = new LBoundCheckBox(panTbl1, wxID_ANY, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER);
|
||||
Check1t->SetLabel(wxEmptyString);
|
||||
flxszTbl1->Add(Check1t, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("combo1t"));
|
||||
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
Combo1t = new LBoundComboBox(panTbl1, wxID_ANY);
|
||||
flxszTbl1->Add(Combo1t, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("combo1x"));
|
||||
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
Combo1x = new LBoundComboBox(panTbl1, wxID_ANY);
|
||||
Combo1x->SetSQLQuote(_T("'"));
|
||||
flxszTbl1->Add(Combo1x, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("date1"));
|
||||
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
Date1 = new LBoundDatePickerCtrl(panTbl1, wxID_ANY);
|
||||
flxszTbl1->Add(Date1, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
lbl = new wxStaticText(panTbl1, wxID_ANY, _T("spin1"));
|
||||
flxszTbl1->Add(lbl, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
|
||||
Spin1 = new LBoundSpinCtrl(panTbl1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS | wxALIGN_RIGHT, -10, 25, 3);
|
||||
flxszTbl1->Add(Spin1, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
navTbl1 = new LNavigator(panTbl1, wxID_ANY);
|
||||
szTbl1->Add(navTbl1, 0, wxEXPAND, 0);
|
||||
|
||||
grid = new LBoundGrid(this, wxID_ANY);
|
||||
szMain->Add(grid, 1, wxEXPAND, 0);
|
||||
grid->SetGridFormEventHandler(new GridEVH(this));
|
||||
|
||||
txtMessages = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
|
||||
//szMain->Add(txtMessages, 1, wxEXPAND|wxALIGN_BOTTOM, 0);
|
||||
szMain->Add(txtMessages, 1, wxEXPAND, 0);
|
||||
SetSize(800, 600);
|
||||
}
|
||||
L7Frame::~L7Frame() {
|
||||
delete m_txtConnInfo;
|
||||
delete txtMessages;
|
||||
delete rdBE;
|
||||
delete Pk1;
|
||||
delete Text1;
|
||||
delete Check1d;
|
||||
delete Check1t;
|
||||
delete Combo1t;
|
||||
delete Combo1x;
|
||||
delete Date1;
|
||||
delete Spin1;
|
||||
delete navTbl1; // Has deleted and unregistered it's own event handler.
|
||||
if (m_rsTbl1) {
|
||||
for (unsigned int i = 0; i < m_rsTbl1->GetEventHandlers().Count(); i++) {
|
||||
delete static_cast<LResultSetEvent*> (m_rsTbl1->GetEventHandlers().Item(i));
|
||||
}
|
||||
delete m_rsTbl1;
|
||||
}
|
||||
if (rsTbl2) {
|
||||
for (unsigned int i = 0; i < rsTbl2->GetEventHandlers().Count(); i++) {
|
||||
delete static_cast<LResultSetEvent*> (rsTbl2->GetEventHandlers().Item(i));
|
||||
}
|
||||
delete rsTbl2;
|
||||
}
|
||||
if (m_conn) {
|
||||
m_conn->Close();
|
||||
for (unsigned int i = 0; i < m_conn->GetEventHandlers().Count(); i++) {
|
||||
delete static_cast<ConnectionEVH*> (m_conn->GetEventHandlers().Item(i));
|
||||
}
|
||||
delete m_conn;
|
||||
}
|
||||
delete grid->GetGridFormEventHandler();
|
||||
}
|
||||
|
||||
void L7Frame::AppendMsg(const wxString& msg) {
|
||||
static int n =0;
|
||||
txtMessages->AppendText(wxAny(n).As<wxString>() + _T(". ") + msg + _T("\n"));
|
||||
n++;
|
||||
}
|
||||
void L7Frame::MsgBox(const wxString& msg) {
|
||||
wxMessageBox(msg, wxApp::GetInstance()->GetAppName(), wxOK|wxCENTRE, this);
|
||||
}
|
||||
void L7Frame::OnRadioConnClick(wxCommandEvent& evt) {
|
||||
wxString connInfo;
|
||||
if (evt.GetInt() == 1) {
|
||||
connInfo = _T("host=localhost port=5424 dbname=l7 user=l7 password=L7");
|
||||
} else if (evt.GetInt() == 2) {
|
||||
connInfo = wxStandardPaths::Get().GetUserDataDir()
|
||||
+ wxFileName::GetPathSeparator()
|
||||
+ _T("L7.db");
|
||||
}
|
||||
m_txtConnInfo->SetValue(connInfo);
|
||||
rdBE->Enable(false);
|
||||
}
|
||||
void L7Frame::OnButtonConnectClick(wxCommandEvent& evt) {
|
||||
if (rdBE->GetSelection() == 0) return;
|
||||
if (!m_conn) {
|
||||
if (rdBE->GetSelection() == 1) {
|
||||
m_conn = new PQ::LPQConnection(m_txtConnInfo->GetValue());
|
||||
ConnectionEVH * connEVH = new ConnectionEVH(this);
|
||||
m_conn->RegisterEventHandler(connEVH);
|
||||
if (m_conn->Connect()) {
|
||||
m_rsTbl1 = new PQ::LPQResultSet(m_conn);
|
||||
rsTbl2 = new PQ::LPQResultSet(m_conn);
|
||||
}
|
||||
} else if (rdBE->GetSelection() == 2) {
|
||||
m_conn = new SQ::LSQConnection(m_txtConnInfo->GetValue());
|
||||
ConnectionEVH * connEVH = new ConnectionEVH(this);
|
||||
m_conn->RegisterEventHandler(connEVH);
|
||||
if (wxFileName::Exists(m_conn->GetInfo())) {
|
||||
if (m_conn->Connect()) {
|
||||
m_rsTbl1 = new SQ::LSQResultSet(m_conn);
|
||||
rsTbl2 = new SQ::LSQResultSet(m_conn);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (m_conn->IsValid()) {
|
||||
Pk1->SetColumnName(_T("pk1")); Pk1->SetResultSet(m_rsTbl1);
|
||||
Text1->SetColumnName(_T("text1")); Text1->SetResultSet(m_rsTbl1);
|
||||
Check1d->SetColumnName(_T("check1d")); Check1d->SetResultSet(m_rsTbl1);
|
||||
Check1t->SetColumnName(_T("check1t")); Check1t->SetResultSet(m_rsTbl1);
|
||||
Combo1t->SetColumnName(_T("combo1t")); Combo1t->SetResultSet(m_rsTbl1);
|
||||
Combo1x->SetColumnName(_T("combo1x")); Combo1x->SetResultSet(m_rsTbl1);
|
||||
Date1->SetColumnName(_T("date1")); Date1->SetResultSet(m_rsTbl1);
|
||||
Spin1->SetColumnName(_T("spin1")); Spin1->SetResultSet(m_rsTbl1);
|
||||
Pk1->SetSQLQuote(wxEmptyString);
|
||||
FillComboBox(Combo1t, _T("SELECT id_list1, item FROM list1 ORDER BY id_list1"));
|
||||
FillComboBox(Combo1x, _T("SELECT item FROM list1 ORDER BY id_list1"));
|
||||
navTbl1->SetResultSet(m_rsTbl1);
|
||||
m_rsTbl1->SetTableName(_T("tbl1"));
|
||||
m_rsTbl1->SetPKColumnName(_T("pk1"));
|
||||
m_rsTbl1->RegisterEventHandler(new ResultSetTbl1EVH(this));
|
||||
const wxString sql = _T("SELECT * FROM tbl1 ORDER BY text1");
|
||||
m_rsTbl1->SetSQL(sql); // Must be last, calls LResultSet::Display()
|
||||
rsTbl2->SetTableName(_T("tbl2"));
|
||||
rsTbl2->SetPKColumnName(_T("PK2"));
|
||||
rsTbl2->SetMasterColumnNames(_T("pk1;rand1"));
|
||||
rsTbl2->SetChildColumnNames(_T("pk1;rand1"));
|
||||
rsTbl2->SetMasterResultSet(m_rsTbl1);
|
||||
grid->SetResultSet(rsTbl2);
|
||||
rsTbl2->RegisterEventHandler(new ResultSetTbl2EVH(this));
|
||||
FilterGrid();
|
||||
}
|
||||
}
|
||||
const wxAny status = m_conn->IsValid();
|
||||
AppendMsg(_("Connection status : ") + status.As<wxString>());
|
||||
if (!m_conn->IsValid()) {
|
||||
wxDELETE(m_rsTbl1);
|
||||
wxDELETE(m_conn);
|
||||
}
|
||||
}
|
||||
void L7Frame::OnButtonNewFrameClick(wxCommandEvent& evt) {
|
||||
L7Frame * newFrame = new L7Frame(NULL, wxID_ANY, GetTitle());
|
||||
newFrame->Show();
|
||||
}
|
||||
|
||||
void L7Frame::FillComboBox(LBoundComboBox* cmb, const wxString& sql) {
|
||||
if (!m_conn || !cmb) return;
|
||||
LLightResultSet * rs;
|
||||
if (rdBE->GetSelection() == 1) {
|
||||
rs = new PQ::LLightPQResultSet(m_conn);
|
||||
} else if (rdBE->GetSelection() == 2) {
|
||||
rs = new SQ::LLightSQResultSet(m_conn);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
rs->SetSQL(sql);
|
||||
if (rs->HasData()) {
|
||||
cmb->Clear();
|
||||
if (rs->GetColumnCount() > 1) {
|
||||
cmb->Append(_("NULL item"), (LItemData*) NULL);
|
||||
const wxString dispCol = rs->GetColumnName(1);
|
||||
const wxString idCol = rs->GetColumnName(0);
|
||||
do {
|
||||
cmb->Append(rs->GetData(dispCol).As<wxString>(), new LItemData(rs->GetData(idCol)));
|
||||
} while (rs->Next());
|
||||
} else {
|
||||
cmb->Append(wxEmptyString);
|
||||
const wxString dispCol = rs->GetColumnName(0);
|
||||
do {
|
||||
cmb->Append(rs->GetData(dispCol).As<wxString>());
|
||||
} while (rs->Next());
|
||||
}
|
||||
delete rs;
|
||||
}
|
||||
}
|
||||
|
||||
void L7Frame::FilterGrid()
|
||||
{
|
||||
wxString sql = _T("SELECT rand1, PK2, PK1, text2, check2d, check2t, list1.item AS combo2t,"
|
||||
" combo2x, date2, spin2 FROM tbl2"
|
||||
" LEFT JOIN list1 ON tbl2.combo2t = list1.id_list1"
|
||||
" WHERE tbl2.pk1");
|
||||
sql += Pk1->GetValue().IsEmpty() ? _T(" IS NULL ") : _T(" = ") + Pk1->GetValue();
|
||||
sql += " ORDER BY tbl2.text2";
|
||||
rsTbl2->SetSQL(sql);
|
||||
grid->FillGrid();
|
||||
|
||||
if (!colsCreated) {
|
||||
grid->SetDefaultRowSize(40, true);
|
||||
grid->CreateTextColumn(_T("Pk2"), _T("PK2"), 40, false, true);
|
||||
grid->CreateTextColumn(_T("pK1"), _T("PK1"), 40, false, true);
|
||||
grid->CreateTextColumn(_T("text2"), _T("Text 2"), 100, true);
|
||||
grid->CreateCheckBoxColumn(_T("check2d"), _T("Case 2"), 50, false, true);
|
||||
grid->CreateCheckBoxColumn(_T("check2t"), _T("Case 3"), 50, false, false);
|
||||
grid->CreateComboBoxColumn(_T("combo2t"), _T("Combo num"), 80);
|
||||
grid->CreateComboBoxColumn(_T("combo2x"), _T("Combo txt"), 80);
|
||||
grid->CreateDateColumn(_T("date2"), _T("Date"), 80);
|
||||
grid->CreateSpinColumn(_T("spin2"), _T("Spin"), 60, -20, 20, 5);
|
||||
grid->CreateTextColumn(_T("rand1"), _T("Random"), 80, false, true);
|
||||
|
||||
LBoundComboBox * Combo2t = static_cast<LBoundComboBox*> (grid->GetBoundControl(grid->GetGridCursorRow(), _T("combo2t"), false));
|
||||
FillComboBox(Combo2t, _T("SELECT id_list1, item FROM list1 ORDER BY id_list1"));
|
||||
LBoundComboBox * Combo2x = static_cast<LBoundComboBox*> (grid->GetBoundControl(grid->GetGridCursorRow(), _T("combo2x"), false));
|
||||
Combo2x->SetSQLQuote(_T("'"));
|
||||
FillComboBox(Combo2x, _T("SELECT item FROM list1 ORDER BY id_list1"));
|
||||
LBoundControl * Pk2 = grid->GetBoundControl(grid->GetGridCursorRow(), _T("pk2"), false);
|
||||
Pk2->SetSQLQuote(wxEmptyString);
|
||||
LBoundControl * Pk1 = grid->GetBoundControl(grid->GetGridCursorRow(), _T("pk1"), false);
|
||||
Pk1->SetSQLQuote(wxEmptyString);
|
||||
colsCreated = true;
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ConnectionEVH::ConnectionEVH(L7Frame* newOwner) {
|
||||
owner = newOwner;
|
||||
}
|
||||
ConnectionEVH::~ConnectionEVH() {
|
||||
|
||||
}
|
||||
void ConnectionEVH::Inform(const LConnection* caller, const LInformation& msg) const {
|
||||
owner->MsgBox(msg.GetFullInformation());
|
||||
}
|
||||
void ConnectionEVH::BeforeExecute(const LConnection* caller) {
|
||||
owner->AppendMsg(_T("LConnection::BeforeExecute"));
|
||||
}
|
||||
void ConnectionEVH::AfterExecute(const LConnection* caller) {
|
||||
owner->AppendMsg(_T("LConnection::AfterExecute"));
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ResultSetTbl1EVH::ResultSetTbl1EVH(L7Frame* newOwner) {
|
||||
owner = newOwner;
|
||||
}
|
||||
ResultSetTbl1EVH::~ResultSetTbl1EVH() {
|
||||
|
||||
}
|
||||
void ResultSetTbl1EVH::Inform(const LResultSet* caller, const LInformation& msg) const {
|
||||
owner->MsgBox(msg.GetFullInformation());
|
||||
}
|
||||
void ResultSetTbl1EVH::AfterAction(LResultSet* caller, ACTIONS action) {
|
||||
owner->AppendMsg(_T("LResultSet::AfterAction - ") + caller->GetTableName() + _T(" - ") + wxAny((int) action).As<wxString>());
|
||||
}
|
||||
void ResultSetTbl1EVH::AfterChangeRow(LResultSet* caller) {
|
||||
owner->AppendMsg(_T("LResultSet::AfterChangeRow - ") + caller->GetTableName());
|
||||
owner->FilterGrid();
|
||||
}
|
||||
void ResultSetTbl1EVH::AfterDelete(LResultSet* caller, const wxAny& oldPK, const wxString& sql) {
|
||||
owner->AppendMsg(_T("LResultSet::AfterDelete - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||
}
|
||||
void ResultSetTbl1EVH::AfterInsert(LResultSet* caller, const wxAny& newPK, const wxString& sql)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::AfterInsert - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||
}
|
||||
|
||||
void ResultSetTbl1EVH::AfterSave(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::AfterSave - ") + caller->GetTableName());
|
||||
}
|
||||
|
||||
void ResultSetTbl1EVH::AfterUpdate(LResultSet* caller, const wxAny& curPK, const wxString& sql)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::AfterUpdate - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||
}
|
||||
|
||||
void ResultSetTbl1EVH::BeforeChangeRow(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::BeforeChangeRow - ") + caller->GetTableName());
|
||||
}
|
||||
|
||||
void ResultSetTbl1EVH::BeforeDelete(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::BeforeDelete - ") + caller->GetTableName());
|
||||
wxMessageDialog * md = new wxMessageDialog(owner, _("Delete ?"), wxApp::GetInstance()->GetAppName(), wxYES_NO);
|
||||
int reply = md->ShowModal();
|
||||
caller->SetCanDelete(reply == wxID_YES ? true : false);
|
||||
}
|
||||
|
||||
void ResultSetTbl1EVH::BeforeInsert(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::BeforeInsert - ") + caller->GetTableName());
|
||||
bool valid = !(owner->Text1->IsNull());
|
||||
if (!valid) {
|
||||
owner->MsgBox(_("Text1 is NULL."));
|
||||
}
|
||||
caller->SetCanInsert(valid);
|
||||
}
|
||||
|
||||
void ResultSetTbl1EVH::BeforeSave(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::BeforeSave - ") + caller->GetTableName());
|
||||
}
|
||||
|
||||
void ResultSetTbl1EVH::BeforeUpdate(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::BeforeUpdate - ") + caller->GetTableName());
|
||||
bool valid = !(owner->Text1->IsNull());
|
||||
if (!valid) {
|
||||
owner->MsgBox(_("Text1 is NULL."));
|
||||
}
|
||||
caller->SetCanUpdate(valid);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ResultSetTbl2EVH::ResultSetTbl2EVH(L7Frame* newOwner) {
|
||||
owner = newOwner;
|
||||
}
|
||||
ResultSetTbl2EVH::~ResultSetTbl2EVH() {
|
||||
|
||||
}
|
||||
void ResultSetTbl2EVH::Inform(const LResultSet* caller, const LInformation& msg) const {
|
||||
owner->MsgBox(msg.GetFullInformation());
|
||||
}
|
||||
void ResultSetTbl2EVH::AfterAction(LResultSet* caller, ACTIONS action) {
|
||||
owner->AppendMsg(_T("LResultSet::AfterAction - ") + caller->GetTableName() + _T(" - ") + wxAny((int) action).As<wxString>());
|
||||
}
|
||||
void ResultSetTbl2EVH::AfterChangeRow(LResultSet* caller) {
|
||||
owner->AppendMsg(_T("LResultSet::AfterChangeRow - ") + caller->GetTableName());
|
||||
}
|
||||
void ResultSetTbl2EVH::AfterDelete(LResultSet* caller, const wxAny& oldPK, const wxString& sql) {
|
||||
owner->AppendMsg(_T("LResultSet::AfterDelete - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||
}
|
||||
void ResultSetTbl2EVH::AfterInsert(LResultSet* caller, const wxAny& newPK, const wxString& sql)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::AfterInsert - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||
}
|
||||
|
||||
void ResultSetTbl2EVH::AfterSave(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::AfterSave - ") + caller->GetTableName());
|
||||
}
|
||||
|
||||
void ResultSetTbl2EVH::AfterUpdate(LResultSet* caller, const wxAny& curPK, const wxString& sql)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::AfterUpdate - ") + caller->GetTableName() + _T(" - ") + sql);
|
||||
}
|
||||
|
||||
void ResultSetTbl2EVH::BeforeChangeRow(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::BeforeChangeRow - ") + caller->GetTableName());
|
||||
}
|
||||
|
||||
void ResultSetTbl2EVH::BeforeDelete(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::BeforeDelete - ") + caller->GetTableName());
|
||||
}
|
||||
|
||||
void ResultSetTbl2EVH::BeforeInsert(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::BeforeInsert - ") + caller->GetTableName());
|
||||
}
|
||||
|
||||
void ResultSetTbl2EVH::BeforeSave(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::BeforeSave - ") + caller->GetTableName());
|
||||
}
|
||||
|
||||
void ResultSetTbl2EVH::BeforeUpdate(LResultSet* caller)
|
||||
{
|
||||
owner->AppendMsg(_T("LResultSet::BeforeUpdate - ") + caller->GetTableName());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
GridEVH::GridEVH(L7Frame* newOwner)
|
||||
{
|
||||
owner = newOwner;
|
||||
}
|
||||
|
||||
GridEVH::~GridEVH()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void GridEVH::BeforeFormShown(const LBoundGrid* origin, wxBoxSizer* clientSizer)
|
||||
{
|
||||
wxButton * btnClient = new wxButton(clientSizer->GetContainingWindow(), wxID_ANY, _("Click"));
|
||||
clientSizer->Add(btnClient, 1, wxEXPAND);
|
||||
btnClient->Bind(wxEVT_BUTTON, &GridEVH::OnClientButtonClicked, this);
|
||||
}
|
||||
|
||||
void GridEVH::OnClientButtonClicked(wxCommandEvent& evt)
|
||||
{
|
||||
wxTextCtrl * txtFormCtrl = static_cast<wxTextCtrl*> (owner->grid->GetFormEditor(_T("text2")));
|
||||
owner->MsgBox(txtFormCtrl->GetValue());
|
||||
}
|
||||
142
L7Test/L7Test.h
Normal file
142
L7Test/L7Test.h
Normal file
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
* File: L7Test.h
|
||||
* Author: Saleem EDAH-TALLY - nmset@netcourrier.com
|
||||
* Copyright Saleem EDAH-TALLY - © 2014
|
||||
*
|
||||
* Created on 4 juin 2014, 20:42
|
||||
*/
|
||||
|
||||
#ifndef L7TEST_H
|
||||
#define L7TEST_H
|
||||
|
||||
#include <wx/wx.h>
|
||||
#include <LConnection.h>
|
||||
#include <LResultSet.h>
|
||||
#include <LBoundTextCtrl.h>
|
||||
#include <LBoundCheckBox.h>
|
||||
#include <LBoundComboBox.h>
|
||||
#include <LBoundDatePickerCtrl.h>
|
||||
#include <LBoundSpinCtrl.h>
|
||||
#include <LNavigator.h>
|
||||
#include <LBoundGrid.h>
|
||||
|
||||
class L7Test;
|
||||
class L7Frame;
|
||||
|
||||
class L7Test : public wxApp
|
||||
{
|
||||
public:
|
||||
L7Test();
|
||||
virtual ~L7Test();
|
||||
|
||||
bool OnInit();
|
||||
int OnExit();
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
class L7Frame : public wxFrame
|
||||
{
|
||||
friend class ConnectionEVH;
|
||||
friend class ResultSetTbl1EVH;
|
||||
friend class ResultSetTbl2EVH;
|
||||
friend class GridEVH;
|
||||
public:
|
||||
L7Frame(wxWindow * parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString);
|
||||
virtual ~L7Frame();
|
||||
private:
|
||||
LConnection * m_conn;
|
||||
wxTextCtrl * m_txtConnInfo;
|
||||
LResultSet * m_rsTbl1;
|
||||
LResultSet * rsTbl2;
|
||||
wxRadioBox * rdBE;
|
||||
wxTextCtrl * txtMessages;
|
||||
LBoundTextCtrl * Pk1;
|
||||
LBoundTextCtrl * Text1;
|
||||
LBoundCheckBox * Check1d; // Dual state
|
||||
LBoundCheckBox * Check1t; // Tri state
|
||||
LBoundComboBox * Combo1t; // Translated
|
||||
LBoundComboBox * Combo1x; // Text
|
||||
LBoundDatePickerCtrl * Date1;
|
||||
LBoundSpinCtrl * Spin1;
|
||||
LNavigator * navTbl1;
|
||||
LBoundGrid * grid;
|
||||
bool colsCreated;
|
||||
|
||||
void AppendMsg(const wxString& msg);
|
||||
void MsgBox(const wxString& msg);
|
||||
void OnRadioConnClick(wxCommandEvent& evt);
|
||||
void OnButtonConnectClick(wxCommandEvent& evt);
|
||||
void OnButtonNewFrameClick(wxCommandEvent& evt);
|
||||
void FillComboBox(LBoundComboBox * cmb, const wxString& sql);
|
||||
void FilterGrid();
|
||||
};
|
||||
|
||||
class ConnectionEVH : public LConnectionEvent {
|
||||
public:
|
||||
ConnectionEVH(L7Frame * newOwner);
|
||||
virtual ~ConnectionEVH();
|
||||
|
||||
private:
|
||||
L7Frame * owner;
|
||||
void BeforeExecute(const LConnection * caller);
|
||||
void AfterExecute(const LConnection * caller);
|
||||
void Inform(const LConnection * caller,
|
||||
const LInformation& msg) const;
|
||||
};
|
||||
|
||||
class ResultSetTbl1EVH : public LResultSetEvent {
|
||||
public:
|
||||
ResultSetTbl1EVH(L7Frame * newOwner);
|
||||
virtual ~ResultSetTbl1EVH();
|
||||
private:
|
||||
L7Frame * owner;
|
||||
void Inform(const LResultSet* caller, const LInformation& msg) const;
|
||||
void AfterAction(LResultSet* caller, ACTIONS action);
|
||||
void AfterChangeRow(LResultSet* caller);
|
||||
void AfterDelete(LResultSet* caller, const wxAny& oldPK, const wxString& sql);
|
||||
void AfterInsert(LResultSet* caller, const wxAny& newPK, const wxString& sql);
|
||||
void AfterSave(LResultSet* caller);
|
||||
void AfterUpdate(LResultSet* caller, const wxAny& curPK, const wxString& sql);
|
||||
void BeforeChangeRow(LResultSet* caller);
|
||||
void BeforeDelete(LResultSet* caller);
|
||||
void BeforeInsert(LResultSet* caller);
|
||||
void BeforeSave(LResultSet* caller);
|
||||
void BeforeUpdate(LResultSet* caller);
|
||||
};
|
||||
|
||||
class ResultSetTbl2EVH : public LResultSetEvent {
|
||||
public:
|
||||
ResultSetTbl2EVH(L7Frame * newOwner);
|
||||
virtual ~ResultSetTbl2EVH();
|
||||
private:
|
||||
L7Frame * owner;
|
||||
void Inform(const LResultSet* caller, const LInformation& msg) const;
|
||||
void AfterAction(LResultSet* caller, ACTIONS action);
|
||||
void AfterChangeRow(LResultSet* caller);
|
||||
void AfterDelete(LResultSet* caller, const wxAny& oldPK, const wxString& sql);
|
||||
void AfterInsert(LResultSet* caller, const wxAny& newPK, const wxString& sql);
|
||||
void AfterSave(LResultSet* caller);
|
||||
void AfterUpdate(LResultSet* caller, const wxAny& curPK, const wxString& sql);
|
||||
void BeforeChangeRow(LResultSet* caller);
|
||||
void BeforeDelete(LResultSet* caller);
|
||||
void BeforeInsert(LResultSet* caller);
|
||||
void BeforeSave(LResultSet* caller);
|
||||
void BeforeUpdate(LResultSet* caller);
|
||||
};
|
||||
|
||||
class GridEVH : public LBoundGridFormEvent {
|
||||
public:
|
||||
GridEVH(L7Frame * newOwner);
|
||||
virtual ~GridEVH();
|
||||
|
||||
private:
|
||||
L7Frame * owner;
|
||||
|
||||
void BeforeFormShown(const LBoundGrid* origin, wxBoxSizer* clientSizer);
|
||||
void OnClientButtonClicked(wxCommandEvent& evt);
|
||||
|
||||
};
|
||||
#endif /* L7TEST_H */
|
||||
|
||||
128
L7Test/Makefile
Normal file
128
L7Test/Makefile
Normal file
@@ -0,0 +1,128 @@
|
||||
#
|
||||
# There exist several targets which are by default empty and which can be
|
||||
# used for execution of your targets. These targets are usually executed
|
||||
# before and after some main targets. They are:
|
||||
#
|
||||
# .build-pre: called before 'build' target
|
||||
# .build-post: called after 'build' target
|
||||
# .clean-pre: called before 'clean' target
|
||||
# .clean-post: called after 'clean' target
|
||||
# .clobber-pre: called before 'clobber' target
|
||||
# .clobber-post: called after 'clobber' target
|
||||
# .all-pre: called before 'all' target
|
||||
# .all-post: called after 'all' target
|
||||
# .help-pre: called before 'help' target
|
||||
# .help-post: called after 'help' target
|
||||
#
|
||||
# Targets beginning with '.' are not intended to be called on their own.
|
||||
#
|
||||
# Main targets can be executed directly, and they are:
|
||||
#
|
||||
# build build a specific configuration
|
||||
# clean remove built files from a configuration
|
||||
# clobber remove all built files
|
||||
# all build all configurations
|
||||
# help print help mesage
|
||||
#
|
||||
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
|
||||
# .help-impl are implemented in nbproject/makefile-impl.mk.
|
||||
#
|
||||
# Available make variables:
|
||||
#
|
||||
# CND_BASEDIR base directory for relative paths
|
||||
# CND_DISTDIR default top distribution directory (build artifacts)
|
||||
# CND_BUILDDIR default top build directory (object files, ...)
|
||||
# CONF name of current configuration
|
||||
# CND_PLATFORM_${CONF} platform name (current configuration)
|
||||
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
|
||||
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
|
||||
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
|
||||
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
|
||||
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
|
||||
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
|
||||
#
|
||||
# NOCDDL
|
||||
|
||||
|
||||
# Environment
|
||||
MKDIR=mkdir
|
||||
CP=cp
|
||||
CCADMIN=CCadmin
|
||||
|
||||
|
||||
# build
|
||||
build: .build-post
|
||||
|
||||
.build-pre:
|
||||
# Add your pre 'build' code here...
|
||||
|
||||
.build-post: .build-impl
|
||||
# Add your post 'build' code here...
|
||||
|
||||
|
||||
# clean
|
||||
clean: .clean-post
|
||||
|
||||
.clean-pre:
|
||||
# Add your pre 'clean' code here...
|
||||
|
||||
.clean-post: .clean-impl
|
||||
# Add your post 'clean' code here...
|
||||
|
||||
|
||||
# clobber
|
||||
clobber: .clobber-post
|
||||
|
||||
.clobber-pre:
|
||||
# Add your pre 'clobber' code here...
|
||||
|
||||
.clobber-post: .clobber-impl
|
||||
# Add your post 'clobber' code here...
|
||||
|
||||
|
||||
# all
|
||||
all: .all-post
|
||||
|
||||
.all-pre:
|
||||
# Add your pre 'all' code here...
|
||||
|
||||
.all-post: .all-impl
|
||||
# Add your post 'all' code here...
|
||||
|
||||
|
||||
# build tests
|
||||
build-tests: .build-tests-post
|
||||
|
||||
.build-tests-pre:
|
||||
# Add your pre 'build-tests' code here...
|
||||
|
||||
.build-tests-post: .build-tests-impl
|
||||
# Add your post 'build-tests' code here...
|
||||
|
||||
|
||||
# run tests
|
||||
test: .test-post
|
||||
|
||||
.test-pre: build-tests
|
||||
# Add your pre 'test' code here...
|
||||
|
||||
.test-post: .test-impl
|
||||
# Add your post 'test' code here...
|
||||
|
||||
|
||||
# help
|
||||
help: .help-post
|
||||
|
||||
.help-pre:
|
||||
# Add your pre 'help' code here...
|
||||
|
||||
.help-post: .help-impl
|
||||
# Add your post 'help' code here...
|
||||
|
||||
|
||||
|
||||
# include project implementation makefile
|
||||
include nbproject/Makefile-impl.mk
|
||||
|
||||
# include project make variables
|
||||
include nbproject/Makefile-variables.mk
|
||||
89
L7Test/nbproject/Makefile-Debug.mk
Normal file
89
L7Test/nbproject/Makefile-Debug.mk
Normal file
@@ -0,0 +1,89 @@
|
||||
#
|
||||
# Generated Makefile - do not edit!
|
||||
#
|
||||
# Edit the Makefile in the project folder instead (../Makefile). Each target
|
||||
# has a -pre and a -post target defined where you can add customized code.
|
||||
#
|
||||
# This makefile implements configuration specific macros and targets.
|
||||
|
||||
|
||||
# Environment
|
||||
MKDIR=mkdir
|
||||
CP=cp
|
||||
GREP=grep
|
||||
NM=nm
|
||||
CCADMIN=CCadmin
|
||||
RANLIB=ranlib
|
||||
CC=gcc
|
||||
CCC=g++
|
||||
CXX=g++
|
||||
FC=gfortran
|
||||
AS=as
|
||||
|
||||
# Macros
|
||||
CND_PLATFORM=GNU-Linux
|
||||
CND_DLIB_EXT=so
|
||||
CND_CONF=Debug
|
||||
CND_DISTDIR=dist
|
||||
CND_BUILDDIR=build
|
||||
|
||||
# Include project Makefile
|
||||
include Makefile
|
||||
|
||||
# Object Directory
|
||||
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||
|
||||
# Object Files
|
||||
OBJECTFILES= \
|
||||
${OBJECTDIR}/L7Test.o
|
||||
|
||||
|
||||
# C Compiler Flags
|
||||
CFLAGS=
|
||||
|
||||
# CC Compiler Flags
|
||||
CCFLAGS=
|
||||
CXXFLAGS=
|
||||
|
||||
# Fortran Compiler Flags
|
||||
FFLAGS=
|
||||
|
||||
# Assembler Flags
|
||||
ASFLAGS=
|
||||
|
||||
# Link Libraries and Options
|
||||
LDLIBSOPTIONS=-L/usr/local/wxWidgets/lib -lwx_baseu-3.1 -lwx_gtk2u_core-3.1 -lwx_gtk2u_adv-3.1 -lpq -lsqlite3 -Wl,-rpath,'../L7/dist/Debug/GNU-Linux' -L../L7/dist/Debug/GNU-Linux -lL7
|
||||
|
||||
# Build Targets
|
||||
.build-conf: ${BUILD_SUBPROJECTS}
|
||||
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||
|
||||
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test: ../L7/dist/Debug/GNU-Linux/libL7.so
|
||||
|
||||
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test: ${OBJECTFILES}
|
||||
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||
g++ -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test ${OBJECTFILES} ${LDLIBSOPTIONS}
|
||||
|
||||
${OBJECTDIR}/L7Test.o: L7Test.cpp
|
||||
${MKDIR} -p ${OBJECTDIR}
|
||||
${RM} "$@.d"
|
||||
$(COMPILE.cc) -g -DUSE_LIBPQ -DUSE_LIBSQ -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -I/usr/local/wxWidgets/include/wx-3.1 -I/usr/local/wxWidgets/lib/wx/include/gtk2-unicode-3.1 -I../L7 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/L7Test.o L7Test.cpp
|
||||
|
||||
# Subprojects
|
||||
.build-subprojects:
|
||||
cd ../L7 && ${MAKE} -j8 -f Makefile CONF=Debug
|
||||
|
||||
# Clean Targets
|
||||
.clean-conf: ${CLEAN_SUBPROJECTS}
|
||||
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
|
||||
${RM} -r ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libL7.so
|
||||
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||
|
||||
# Subprojects
|
||||
.clean-subprojects:
|
||||
cd ../L7 && ${MAKE} -j8 -f Makefile CONF=Debug clean
|
||||
|
||||
# Enable dependency checking
|
||||
.dep.inc: .depcheck-impl
|
||||
|
||||
include .dep.inc
|
||||
89
L7Test/nbproject/Makefile-Release.mk
Normal file
89
L7Test/nbproject/Makefile-Release.mk
Normal file
@@ -0,0 +1,89 @@
|
||||
#
|
||||
# Generated Makefile - do not edit!
|
||||
#
|
||||
# Edit the Makefile in the project folder instead (../Makefile). Each target
|
||||
# has a -pre and a -post target defined where you can add customized code.
|
||||
#
|
||||
# This makefile implements configuration specific macros and targets.
|
||||
|
||||
|
||||
# Environment
|
||||
MKDIR=mkdir
|
||||
CP=cp
|
||||
GREP=grep
|
||||
NM=nm
|
||||
CCADMIN=CCadmin
|
||||
RANLIB=ranlib
|
||||
CC=gcc
|
||||
CCC=g++
|
||||
CXX=g++
|
||||
FC=gfortran
|
||||
AS=as
|
||||
|
||||
# Macros
|
||||
CND_PLATFORM=GNU-Linux
|
||||
CND_DLIB_EXT=so
|
||||
CND_CONF=Release
|
||||
CND_DISTDIR=dist
|
||||
CND_BUILDDIR=build
|
||||
|
||||
# Include project Makefile
|
||||
include Makefile
|
||||
|
||||
# Object Directory
|
||||
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||
|
||||
# Object Files
|
||||
OBJECTFILES= \
|
||||
${OBJECTDIR}/L7Test.o
|
||||
|
||||
|
||||
# C Compiler Flags
|
||||
CFLAGS=
|
||||
|
||||
# CC Compiler Flags
|
||||
CCFLAGS=
|
||||
CXXFLAGS=
|
||||
|
||||
# Fortran Compiler Flags
|
||||
FFLAGS=
|
||||
|
||||
# Assembler Flags
|
||||
ASFLAGS=
|
||||
|
||||
# Link Libraries and Options
|
||||
LDLIBSOPTIONS=-L/usr/local/wxWidgets-Release/lib -lwx_baseu-3.1 -lwx_gtk2u_core-3.1 -lwx_gtk2u_adv-3.1 -Wl,-rpath,'../L7/dist/Release/GNU-Linux' -L../L7/dist/Release/GNU-Linux -lL7 -lpq -lsqlite3
|
||||
|
||||
# Build Targets
|
||||
.build-conf: ${BUILD_SUBPROJECTS}
|
||||
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||
|
||||
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test: ../L7/dist/Release/GNU-Linux/libL7.so
|
||||
|
||||
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test: ${OBJECTFILES}
|
||||
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test ${OBJECTFILES} ${LDLIBSOPTIONS} -s
|
||||
|
||||
${OBJECTDIR}/L7Test.o: L7Test.cpp
|
||||
${MKDIR} -p ${OBJECTDIR}
|
||||
${RM} "$@.d"
|
||||
$(COMPILE.cc) -O2 -s -DUSE_LIBPQ -DUSE_LIBSQ -DWXUSINGDLL -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -DwxDEBUG_LEVEL=0 -I/usr/local/wxWidgets-Release/include/wx-3.1 -I/usr/local/wxWidgets-Release/lib/wx/include/gtk2-unicode-3.1 -I../L7 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/L7Test.o L7Test.cpp
|
||||
|
||||
# Subprojects
|
||||
.build-subprojects:
|
||||
cd ../L7 && ${MAKE} -j4 -f Makefile CONF=Release
|
||||
|
||||
# Clean Targets
|
||||
.clean-conf: ${CLEAN_SUBPROJECTS}
|
||||
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
|
||||
${RM} -r ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libL7.so
|
||||
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||
|
||||
# Subprojects
|
||||
.clean-subprojects:
|
||||
cd ../L7 && ${MAKE} -j4 -f Makefile CONF=Release clean
|
||||
|
||||
# Enable dependency checking
|
||||
.dep.inc: .depcheck-impl
|
||||
|
||||
include .dep.inc
|
||||
133
L7Test/nbproject/Makefile-impl.mk
Normal file
133
L7Test/nbproject/Makefile-impl.mk
Normal file
@@ -0,0 +1,133 @@
|
||||
#
|
||||
# Generated Makefile - do not edit!
|
||||
#
|
||||
# Edit the Makefile in the project folder instead (../Makefile). Each target
|
||||
# has a pre- and a post- target defined where you can add customization code.
|
||||
#
|
||||
# This makefile implements macros and targets common to all configurations.
|
||||
#
|
||||
# NOCDDL
|
||||
|
||||
|
||||
# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
|
||||
# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
|
||||
# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
|
||||
# and .clean-reqprojects-conf unless SUB has the value 'no'
|
||||
SUB_no=NO
|
||||
SUBPROJECTS=${SUB_${SUB}}
|
||||
BUILD_SUBPROJECTS_=.build-subprojects
|
||||
BUILD_SUBPROJECTS_NO=
|
||||
BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
|
||||
CLEAN_SUBPROJECTS_=.clean-subprojects
|
||||
CLEAN_SUBPROJECTS_NO=
|
||||
CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
|
||||
|
||||
|
||||
# Project Name
|
||||
PROJECTNAME=L7Test
|
||||
|
||||
# Active Configuration
|
||||
DEFAULTCONF=Debug
|
||||
CONF=${DEFAULTCONF}
|
||||
|
||||
# All Configurations
|
||||
ALLCONFS=Debug Release
|
||||
|
||||
|
||||
# build
|
||||
.build-impl: .build-pre .validate-impl .depcheck-impl
|
||||
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||
"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf
|
||||
|
||||
|
||||
# clean
|
||||
.clean-impl: .clean-pre .validate-impl .depcheck-impl
|
||||
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||
"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf
|
||||
|
||||
|
||||
# clobber
|
||||
.clobber-impl: .clobber-pre .depcheck-impl
|
||||
@#echo "=> Running $@..."
|
||||
for CONF in ${ALLCONFS}; \
|
||||
do \
|
||||
"${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \
|
||||
done
|
||||
|
||||
# all
|
||||
.all-impl: .all-pre .depcheck-impl
|
||||
@#echo "=> Running $@..."
|
||||
for CONF in ${ALLCONFS}; \
|
||||
do \
|
||||
"${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \
|
||||
done
|
||||
|
||||
# build tests
|
||||
.build-tests-impl: .build-impl .build-tests-pre
|
||||
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||
"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf
|
||||
|
||||
# run tests
|
||||
.test-impl: .build-tests-impl .test-pre
|
||||
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||
"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf
|
||||
|
||||
# dependency checking support
|
||||
.depcheck-impl:
|
||||
@echo "# This code depends on make tool being used" >.dep.inc
|
||||
@if [ -n "${MAKE_VERSION}" ]; then \
|
||||
echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES} \$${TESTOBJECTFILES}))" >>.dep.inc; \
|
||||
echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
|
||||
echo "include \$${DEPFILES}" >>.dep.inc; \
|
||||
echo "endif" >>.dep.inc; \
|
||||
else \
|
||||
echo ".KEEP_STATE:" >>.dep.inc; \
|
||||
echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
|
||||
fi
|
||||
|
||||
# configuration validation
|
||||
.validate-impl:
|
||||
@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
|
||||
then \
|
||||
echo ""; \
|
||||
echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \
|
||||
echo "See 'make help' for details."; \
|
||||
echo "Current directory: " `pwd`; \
|
||||
echo ""; \
|
||||
fi
|
||||
@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
|
||||
then \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
|
||||
# help
|
||||
.help-impl: .help-pre
|
||||
@echo "This makefile supports the following configurations:"
|
||||
@echo " ${ALLCONFS}"
|
||||
@echo ""
|
||||
@echo "and the following targets:"
|
||||
@echo " build (default target)"
|
||||
@echo " clean"
|
||||
@echo " clobber"
|
||||
@echo " all"
|
||||
@echo " help"
|
||||
@echo ""
|
||||
@echo "Makefile Usage:"
|
||||
@echo " make [CONF=<CONFIGURATION>] [SUB=no] build"
|
||||
@echo " make [CONF=<CONFIGURATION>] [SUB=no] clean"
|
||||
@echo " make [SUB=no] clobber"
|
||||
@echo " make [SUB=no] all"
|
||||
@echo " make help"
|
||||
@echo ""
|
||||
@echo "Target 'build' will build a specific configuration and, unless 'SUB=no',"
|
||||
@echo " also build subprojects."
|
||||
@echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no',"
|
||||
@echo " also clean subprojects."
|
||||
@echo "Target 'clobber' will remove all built files from all configurations and,"
|
||||
@echo " unless 'SUB=no', also from subprojects."
|
||||
@echo "Target 'all' will will build all configurations and, unless 'SUB=no',"
|
||||
@echo " also build subprojects."
|
||||
@echo "Target 'help' prints this message."
|
||||
@echo ""
|
||||
|
||||
35
L7Test/nbproject/Makefile-variables.mk
Normal file
35
L7Test/nbproject/Makefile-variables.mk
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
# Generated - do not edit!
|
||||
#
|
||||
# NOCDDL
|
||||
#
|
||||
CND_BASEDIR=`pwd`
|
||||
CND_BUILDDIR=build
|
||||
CND_DISTDIR=dist
|
||||
# Debug configuration
|
||||
CND_PLATFORM_Debug=GNU-Linux
|
||||
CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux
|
||||
CND_ARTIFACT_NAME_Debug=l7test
|
||||
CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux/l7test
|
||||
CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux/package
|
||||
CND_PACKAGE_NAME_Debug=l7test.tar
|
||||
CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux/package/l7test.tar
|
||||
# Release configuration
|
||||
CND_PLATFORM_Release=GNU-Linux
|
||||
CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux
|
||||
CND_ARTIFACT_NAME_Release=l7test
|
||||
CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux/l7test
|
||||
CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux/package
|
||||
CND_PACKAGE_NAME_Release=l7test.tar
|
||||
CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux/package/l7test.tar
|
||||
#
|
||||
# include compiler specific variables
|
||||
#
|
||||
# dmake command
|
||||
ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \
|
||||
(mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)
|
||||
#
|
||||
# gmake command
|
||||
.PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk))
|
||||
#
|
||||
include nbproject/private/Makefile-variables.mk
|
||||
76
L7Test/nbproject/Package-Debug.bash
Normal file
76
L7Test/nbproject/Package-Debug.bash
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
#
|
||||
# Generated - do not edit!
|
||||
#
|
||||
|
||||
# Macros
|
||||
TOP=`pwd`
|
||||
CND_PLATFORM=GNU-Linux
|
||||
CND_CONF=Debug
|
||||
CND_DISTDIR=dist
|
||||
CND_BUILDDIR=build
|
||||
CND_DLIB_EXT=so
|
||||
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
|
||||
TMPDIRNAME=tmp-packaging
|
||||
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||
OUTPUT_BASENAME=l7test
|
||||
PACKAGE_TOP_DIR=l7test/
|
||||
|
||||
# Functions
|
||||
function checkReturnCode
|
||||
{
|
||||
rc=$?
|
||||
if [ $rc != 0 ]
|
||||
then
|
||||
exit $rc
|
||||
fi
|
||||
}
|
||||
function makeDirectory
|
||||
# $1 directory path
|
||||
# $2 permission (optional)
|
||||
{
|
||||
mkdir -p "$1"
|
||||
checkReturnCode
|
||||
if [ "$2" != "" ]
|
||||
then
|
||||
chmod $2 "$1"
|
||||
checkReturnCode
|
||||
fi
|
||||
}
|
||||
function copyFileToTmpDir
|
||||
# $1 from-file path
|
||||
# $2 to-file path
|
||||
# $3 permission
|
||||
{
|
||||
cp "$1" "$2"
|
||||
checkReturnCode
|
||||
if [ "$3" != "" ]
|
||||
then
|
||||
chmod $3 "$2"
|
||||
checkReturnCode
|
||||
fi
|
||||
}
|
||||
|
||||
# Setup
|
||||
cd "${TOP}"
|
||||
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
|
||||
rm -rf ${NBTMPDIR}
|
||||
mkdir -p ${NBTMPDIR}
|
||||
|
||||
# Copy files and create directories and links
|
||||
cd "${TOP}"
|
||||
makeDirectory "${NBTMPDIR}/l7test/bin"
|
||||
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
|
||||
|
||||
|
||||
# Generate tar file
|
||||
cd "${TOP}"
|
||||
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/l7test.tar
|
||||
cd ${NBTMPDIR}
|
||||
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/l7test.tar *
|
||||
checkReturnCode
|
||||
|
||||
# Cleanup
|
||||
cd "${TOP}"
|
||||
rm -rf ${NBTMPDIR}
|
||||
76
L7Test/nbproject/Package-Release.bash
Normal file
76
L7Test/nbproject/Package-Release.bash
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
#
|
||||
# Generated - do not edit!
|
||||
#
|
||||
|
||||
# Macros
|
||||
TOP=`pwd`
|
||||
CND_PLATFORM=GNU-Linux
|
||||
CND_CONF=Release
|
||||
CND_DISTDIR=dist
|
||||
CND_BUILDDIR=build
|
||||
CND_DLIB_EXT=so
|
||||
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
|
||||
TMPDIRNAME=tmp-packaging
|
||||
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/l7test
|
||||
OUTPUT_BASENAME=l7test
|
||||
PACKAGE_TOP_DIR=l7test/
|
||||
|
||||
# Functions
|
||||
function checkReturnCode
|
||||
{
|
||||
rc=$?
|
||||
if [ $rc != 0 ]
|
||||
then
|
||||
exit $rc
|
||||
fi
|
||||
}
|
||||
function makeDirectory
|
||||
# $1 directory path
|
||||
# $2 permission (optional)
|
||||
{
|
||||
mkdir -p "$1"
|
||||
checkReturnCode
|
||||
if [ "$2" != "" ]
|
||||
then
|
||||
chmod $2 "$1"
|
||||
checkReturnCode
|
||||
fi
|
||||
}
|
||||
function copyFileToTmpDir
|
||||
# $1 from-file path
|
||||
# $2 to-file path
|
||||
# $3 permission
|
||||
{
|
||||
cp "$1" "$2"
|
||||
checkReturnCode
|
||||
if [ "$3" != "" ]
|
||||
then
|
||||
chmod $3 "$2"
|
||||
checkReturnCode
|
||||
fi
|
||||
}
|
||||
|
||||
# Setup
|
||||
cd "${TOP}"
|
||||
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
|
||||
rm -rf ${NBTMPDIR}
|
||||
mkdir -p ${NBTMPDIR}
|
||||
|
||||
# Copy files and create directories and links
|
||||
cd "${TOP}"
|
||||
makeDirectory "${NBTMPDIR}/l7test/bin"
|
||||
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
|
||||
|
||||
|
||||
# Generate tar file
|
||||
cd "${TOP}"
|
||||
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/l7test.tar
|
||||
cd ${NBTMPDIR}
|
||||
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/l7test.tar *
|
||||
checkReturnCode
|
||||
|
||||
# Cleanup
|
||||
cd "${TOP}"
|
||||
rm -rf ${NBTMPDIR}
|
||||
149
L7Test/nbproject/configurations.xml
Normal file
149
L7Test/nbproject/configurations.xml
Normal file
@@ -0,0 +1,149 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configurationDescriptor version="100">
|
||||
<logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
|
||||
<logicalFolder name="HeaderFiles"
|
||||
displayName="Header Files"
|
||||
projectFiles="true">
|
||||
<itemPath>L7Test.h</itemPath>
|
||||
</logicalFolder>
|
||||
<logicalFolder name="ResourceFiles"
|
||||
displayName="Resource Files"
|
||||
projectFiles="true">
|
||||
</logicalFolder>
|
||||
<logicalFolder name="SourceFiles"
|
||||
displayName="Source Files"
|
||||
projectFiles="true">
|
||||
<itemPath>L7Test.cpp</itemPath>
|
||||
</logicalFolder>
|
||||
<logicalFolder name="TestFiles"
|
||||
displayName="Test Files"
|
||||
projectFiles="false"
|
||||
kind="TEST_LOGICAL_FOLDER">
|
||||
</logicalFolder>
|
||||
<logicalFolder name="ExternalFiles"
|
||||
displayName="Important Files"
|
||||
projectFiles="false"
|
||||
kind="IMPORTANT_FILES_FOLDER">
|
||||
<itemPath>Makefile</itemPath>
|
||||
</logicalFolder>
|
||||
</logicalFolder>
|
||||
<projectmakefile>Makefile</projectmakefile>
|
||||
<confs>
|
||||
<conf name="Debug" type="1">
|
||||
<toolsSet>
|
||||
<compilerSet>default</compilerSet>
|
||||
<dependencyChecking>true</dependencyChecking>
|
||||
<rebuildPropChanged>false</rebuildPropChanged>
|
||||
</toolsSet>
|
||||
<compileType>
|
||||
<ccTool>
|
||||
<incDir>
|
||||
<pElem>/usr/local/wxWidgets/include/wx-3.1</pElem>
|
||||
<pElem>/usr/local/wxWidgets/lib/wx/include/gtk2-unicode-3.1</pElem>
|
||||
<pElem>../L7</pElem>
|
||||
</incDir>
|
||||
<preprocessorList>
|
||||
<Elem>USE_LIBPQ</Elem>
|
||||
<Elem>USE_LIBSQ</Elem>
|
||||
<Elem>WXUSINGDLL</Elem>
|
||||
<Elem>_FILE_OFFSET_BITS=64</Elem>
|
||||
<Elem>__WXGTK__</Elem>
|
||||
</preprocessorList>
|
||||
</ccTool>
|
||||
<linkerTool>
|
||||
<linkerAddLib>
|
||||
<pElem>/usr/local/wxWidgets/lib</pElem>
|
||||
</linkerAddLib>
|
||||
<commandlineTool>g++</commandlineTool>
|
||||
<linkerLibItems>
|
||||
<linkerLibLibItem>wx_baseu-3.1</linkerLibLibItem>
|
||||
<linkerLibLibItem>wx_gtk2u_core-3.1</linkerLibLibItem>
|
||||
<linkerLibLibItem>wx_gtk2u_adv-3.1</linkerLibLibItem>
|
||||
<linkerLibLibItem>pq</linkerLibLibItem>
|
||||
<linkerLibLibItem>sqlite3</linkerLibLibItem>
|
||||
<linkerLibProjectItem>
|
||||
<makeArtifact PL="../L7"
|
||||
CT="2"
|
||||
CN="Debug"
|
||||
AC="true"
|
||||
BL="true"
|
||||
WD="../L7"
|
||||
BC="${MAKE} -j8 -f Makefile CONF=Debug"
|
||||
CC="${MAKE} -j8 -f Makefile CONF=Debug clean"
|
||||
OP="${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libL7.${CND_DLIB_EXT}">
|
||||
</makeArtifact>
|
||||
</linkerLibProjectItem>
|
||||
</linkerLibItems>
|
||||
</linkerTool>
|
||||
</compileType>
|
||||
<item path="L7Test.cpp" ex="false" tool="1" flavor2="0">
|
||||
</item>
|
||||
<item path="L7Test.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
</conf>
|
||||
<conf name="Release" type="1">
|
||||
<toolsSet>
|
||||
<compilerSet>default</compilerSet>
|
||||
<dependencyChecking>true</dependencyChecking>
|
||||
<rebuildPropChanged>false</rebuildPropChanged>
|
||||
</toolsSet>
|
||||
<compileType>
|
||||
<cTool>
|
||||
<developmentMode>5</developmentMode>
|
||||
</cTool>
|
||||
<ccTool>
|
||||
<developmentMode>5</developmentMode>
|
||||
<stripSymbols>true</stripSymbols>
|
||||
<incDir>
|
||||
<pElem>/usr/local/wxWidgets-Release/include/wx-3.1</pElem>
|
||||
<pElem>/usr/local/wxWidgets-Release/lib/wx/include/gtk2-unicode-3.1</pElem>
|
||||
<pElem>../L7</pElem>
|
||||
</incDir>
|
||||
<preprocessorList>
|
||||
<Elem>USE_LIBPQ</Elem>
|
||||
<Elem>USE_LIBSQ</Elem>
|
||||
<Elem>WXUSINGDLL</Elem>
|
||||
<Elem>_FILE_OFFSET_BITS=64</Elem>
|
||||
<Elem>__WXGTK__</Elem>
|
||||
<Elem>wxDEBUG_LEVEL=0</Elem>
|
||||
</preprocessorList>
|
||||
</ccTool>
|
||||
<fortranCompilerTool>
|
||||
<developmentMode>5</developmentMode>
|
||||
</fortranCompilerTool>
|
||||
<asmTool>
|
||||
<developmentMode>5</developmentMode>
|
||||
</asmTool>
|
||||
<linkerTool>
|
||||
<linkerAddLib>
|
||||
<pElem>/usr/local/wxWidgets-Release/lib</pElem>
|
||||
</linkerAddLib>
|
||||
<stripSymbols>true</stripSymbols>
|
||||
<linkerLibItems>
|
||||
<linkerLibLibItem>wx_baseu-3.1</linkerLibLibItem>
|
||||
<linkerLibLibItem>wx_gtk2u_core-3.1</linkerLibLibItem>
|
||||
<linkerLibLibItem>wx_gtk2u_adv-3.1</linkerLibLibItem>
|
||||
<linkerLibProjectItem>
|
||||
<makeArtifact PL="../L7"
|
||||
CT="2"
|
||||
CN="Release"
|
||||
AC="false"
|
||||
BL="true"
|
||||
WD="../L7"
|
||||
BC="${MAKE} -j4 -f Makefile CONF=Release"
|
||||
CC="${MAKE} -j4 -f Makefile CONF=Release clean"
|
||||
OP="${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libL7.${CND_DLIB_EXT}">
|
||||
</makeArtifact>
|
||||
</linkerLibProjectItem>
|
||||
<linkerLibLibItem>pq</linkerLibLibItem>
|
||||
<linkerLibLibItem>sqlite3</linkerLibLibItem>
|
||||
</linkerLibItems>
|
||||
</linkerTool>
|
||||
</compileType>
|
||||
<item path="L7Test.cpp" ex="false" tool="1" flavor2="0">
|
||||
</item>
|
||||
<item path="L7Test.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
</conf>
|
||||
</confs>
|
||||
</configurationDescriptor>
|
||||
7
L7Test/nbproject/private/Makefile-variables.mk
Normal file
7
L7Test/nbproject/private/Makefile-variables.mk
Normal file
@@ -0,0 +1,7 @@
|
||||
#
|
||||
# Generated - do not edit!
|
||||
#
|
||||
# NOCDDL
|
||||
#
|
||||
# Debug configuration
|
||||
# Release configuration
|
||||
75
L7Test/nbproject/private/c_standard_headers_indexer.c
Normal file
75
L7Test/nbproject/private/c_standard_headers_indexer.c
Normal file
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
*
|
||||
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
* Other names may be trademarks of their respective owners.
|
||||
*
|
||||
* The contents of this file are subject to the terms of either the GNU
|
||||
* General Public License Version 2 only ("GPL") or the Common
|
||||
* Development and Distribution License("CDDL") (collectively, the
|
||||
* "License"). You may not use this file except in compliance with the
|
||||
* License. You can obtain a copy of the License at
|
||||
* http://www.netbeans.org/cddl-gplv2.html
|
||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
||||
* specific language governing permissions and limitations under the
|
||||
* License. When distributing the software, include this License Header
|
||||
* Notice in each file and include the License file at
|
||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the GPL Version 2 section of the License file that
|
||||
* accompanied this code. If applicable, add the following below the
|
||||
* License Header, with the fields enclosed by brackets [] replaced by
|
||||
* your own identifying information:
|
||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
||||
*
|
||||
* If you wish your version of this file to be governed by only the CDDL
|
||||
* or only the GPL Version 2, indicate your decision by adding
|
||||
* "[Contributor] elects to include this software in this distribution
|
||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
||||
* single choice of license, a recipient has the option to distribute
|
||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
||||
* to extend the choice of license to its licensees as provided above.
|
||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
||||
* Version 2 license, then the option applies only if the new code is
|
||||
* made subject to such option by the copyright holder.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
// List of standard headers was taken in http://en.cppreference.com/w/c/header
|
||||
|
||||
#include <assert.h> // Conditionally compiled macro that compares its argument to zero
|
||||
#include <ctype.h> // Functions to determine the type contained in character data
|
||||
#include <errno.h> // Macros reporting error conditions
|
||||
#include <float.h> // Limits of float types
|
||||
#include <limits.h> // Sizes of basic types
|
||||
#include <locale.h> // Localization utilities
|
||||
#include <math.h> // Common mathematics functions
|
||||
#include <setjmp.h> // Nonlocal jumps
|
||||
#include <signal.h> // Signal handling
|
||||
#include <stdarg.h> // Variable arguments
|
||||
#include <stddef.h> // Common macro definitions
|
||||
#include <stdio.h> // Input/output
|
||||
#include <string.h> // String handling
|
||||
#include <stdlib.h> // General utilities: memory management, program utilities, string conversions, random numbers
|
||||
#include <time.h> // Time/date utilities
|
||||
#include <iso646.h> // (since C95) Alternative operator spellings
|
||||
#include <wchar.h> // (since C95) Extended multibyte and wide character utilities
|
||||
#include <wctype.h> // (since C95) Wide character classification and mapping utilities
|
||||
#ifdef _STDC_C99
|
||||
#include <complex.h> // (since C99) Complex number arithmetic
|
||||
#include <fenv.h> // (since C99) Floating-point environment
|
||||
#include <inttypes.h> // (since C99) Format conversion of integer types
|
||||
#include <stdbool.h> // (since C99) Boolean type
|
||||
#include <stdint.h> // (since C99) Fixed-width integer types
|
||||
#include <tgmath.h> // (since C99) Type-generic math (macros wrapping math.h and complex.h)
|
||||
#endif
|
||||
#ifdef _STDC_C11
|
||||
#include <stdalign.h> // (since C11) alignas and alignof convenience macros
|
||||
#include <stdatomic.h> // (since C11) Atomic types
|
||||
#include <stdnoreturn.h> // (since C11) noreturn convenience macros
|
||||
#include <threads.h> // (since C11) Thread library
|
||||
#include <uchar.h> // (since C11) UTF-16 and UTF-32 character utilities
|
||||
#endif
|
||||
74
L7Test/nbproject/private/configurations.xml
Normal file
74
L7Test/nbproject/private/configurations.xml
Normal file
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configurationDescriptor version="100">
|
||||
<projectmakefile>Makefile</projectmakefile>
|
||||
<confs>
|
||||
<conf name="Debug" type="1">
|
||||
<toolsSet>
|
||||
<developmentServer>localhost</developmentServer>
|
||||
<platform>2</platform>
|
||||
</toolsSet>
|
||||
<dbx_gdbdebugger version="1">
|
||||
<gdb_pathmaps>
|
||||
</gdb_pathmaps>
|
||||
<gdb_interceptlist>
|
||||
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
|
||||
</gdb_interceptlist>
|
||||
<gdb_options>
|
||||
<DebugOptions>
|
||||
</DebugOptions>
|
||||
</gdb_options>
|
||||
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
|
||||
</dbx_gdbdebugger>
|
||||
<nativedebugger version="1">
|
||||
<engine>gdb</engine>
|
||||
</nativedebugger>
|
||||
<runprofile version="9">
|
||||
<runcommandpicklist>
|
||||
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
|
||||
</runcommandpicklist>
|
||||
<runcommand>"${OUTPUT_PATH}"</runcommand>
|
||||
<rundir></rundir>
|
||||
<buildfirst>true</buildfirst>
|
||||
<terminal-type>0</terminal-type>
|
||||
<remove-instrumentation>0</remove-instrumentation>
|
||||
<environment>
|
||||
<variable name="LD_LIBRARY_PATH" value="/usr/local/wxWidgets/lib"/>
|
||||
</environment>
|
||||
</runprofile>
|
||||
</conf>
|
||||
<conf name="Release" type="1">
|
||||
<toolsSet>
|
||||
<developmentServer>localhost</developmentServer>
|
||||
<platform>2</platform>
|
||||
</toolsSet>
|
||||
<dbx_gdbdebugger version="1">
|
||||
<gdb_pathmaps>
|
||||
</gdb_pathmaps>
|
||||
<gdb_interceptlist>
|
||||
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
|
||||
</gdb_interceptlist>
|
||||
<gdb_options>
|
||||
<DebugOptions>
|
||||
</DebugOptions>
|
||||
</gdb_options>
|
||||
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
|
||||
</dbx_gdbdebugger>
|
||||
<nativedebugger version="1">
|
||||
<engine>gdb</engine>
|
||||
</nativedebugger>
|
||||
<runprofile version="9">
|
||||
<runcommandpicklist>
|
||||
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
|
||||
</runcommandpicklist>
|
||||
<runcommand>"${OUTPUT_PATH}"</runcommand>
|
||||
<rundir></rundir>
|
||||
<buildfirst>true</buildfirst>
|
||||
<terminal-type>0</terminal-type>
|
||||
<remove-instrumentation>0</remove-instrumentation>
|
||||
<environment>
|
||||
<variable name="LD_LIBRARY_PATH" value="/usr/local/wxWidgets-Release/lib"/>
|
||||
</environment>
|
||||
</runprofile>
|
||||
</conf>
|
||||
</confs>
|
||||
</configurationDescriptor>
|
||||
135
L7Test/nbproject/private/cpp_standard_headers_indexer.cpp
Normal file
135
L7Test/nbproject/private/cpp_standard_headers_indexer.cpp
Normal file
@@ -0,0 +1,135 @@
|
||||
/*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
*
|
||||
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
* Other names may be trademarks of their respective owners.
|
||||
*
|
||||
* The contents of this file are subject to the terms of either the GNU
|
||||
* General Public License Version 2 only ("GPL") or the Common
|
||||
* Development and Distribution License("CDDL") (collectively, the
|
||||
* "License"). You may not use this file except in compliance with the
|
||||
* License. You can obtain a copy of the License at
|
||||
* http://www.netbeans.org/cddl-gplv2.html
|
||||
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
||||
* specific language governing permissions and limitations under the
|
||||
* License. When distributing the software, include this License Header
|
||||
* Notice in each file and include the License file at
|
||||
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the GPL Version 2 section of the License file that
|
||||
* accompanied this code. If applicable, add the following below the
|
||||
* License Header, with the fields enclosed by brackets [] replaced by
|
||||
* your own identifying information:
|
||||
* "Portions Copyrighted [year] [name of copyright owner]"
|
||||
*
|
||||
* If you wish your version of this file to be governed by only the CDDL
|
||||
* or only the GPL Version 2, indicate your decision by adding
|
||||
* "[Contributor] elects to include this software in this distribution
|
||||
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
||||
* single choice of license, a recipient has the option to distribute
|
||||
* your version of this file under either the CDDL, the GPL Version 2 or
|
||||
* to extend the choice of license to its licensees as provided above.
|
||||
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
||||
* Version 2 license, then the option applies only if the new code is
|
||||
* made subject to such option by the copyright holder.
|
||||
*
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
// List of standard headers was taken in http://en.cppreference.com/w/cpp/header
|
||||
|
||||
#include <cstdlib> // General purpose utilities: program control, dynamic memory allocation, random numbers, sort and search
|
||||
#include <csignal> // Functions and macro constants for signal management
|
||||
#include <csetjmp> // Macro (and function) that saves (and jumps) to an execution context
|
||||
#include <cstdarg> // Handling of variable length argument lists
|
||||
#include <typeinfo> // Runtime type information utilities
|
||||
#include <bitset> // std::bitset class template
|
||||
#include <functional> // Function objects, designed for use with the standard algorithms
|
||||
#include <utility> // Various utility components
|
||||
#include <ctime> // C-style time/date utilites
|
||||
#include <cstddef> // typedefs for types such as size_t, NULL and others
|
||||
#include <new> // Low-level memory management utilities
|
||||
#include <memory> // Higher level memory management utilities
|
||||
#include <climits> // limits of integral types
|
||||
#include <cfloat> // limits of float types
|
||||
#include <limits> // standardized way to query properties of arithmetic types
|
||||
#include <exception> // Exception handling utilities
|
||||
#include <stdexcept> // Standard exception objects
|
||||
#include <cassert> // Conditionally compiled macro that compares its argument to zero
|
||||
#include <cerrno> // Macro containing the last error number
|
||||
#include <cctype> // functions to determine the type contained in character data
|
||||
#include <cwctype> // functions for determining the type of wide character data
|
||||
#include <cstring> // various narrow character string handling functions
|
||||
#include <cwchar> // various wide and multibyte string handling functions
|
||||
#include <string> // std::basic_string class template
|
||||
#include <vector> // std::vector container
|
||||
#include <deque> // std::deque container
|
||||
#include <list> // std::list container
|
||||
#include <set> // std::set and std::multiset associative containers
|
||||
#include <map> // std::map and std::multimap associative containers
|
||||
#include <stack> // std::stack container adaptor
|
||||
#include <queue> // std::queue and std::priority_queue container adaptors
|
||||
#include <algorithm> // Algorithms that operate on containers
|
||||
#include <iterator> // Container iterators
|
||||
#include <cmath> // Common mathematics functions
|
||||
#include <complex> // Complex number type
|
||||
#include <valarray> // Class for representing and manipulating arrays of values
|
||||
#include <numeric> // Numeric operations on values in containers
|
||||
#include <iosfwd> // forward declarations of all classes in the input/output library
|
||||
#include <ios> // std::ios_base class, std::basic_ios class template and several typedefs
|
||||
#include <istream> // std::basic_istream class template and several typedefs
|
||||
#include <ostream> // std::basic_ostream, std::basic_iostream class templates and several typedefs
|
||||
#include <iostream> // several standard stream objects
|
||||
#include <fstream> // std::basic_fstream, std::basic_ifstream, std::basic_ofstream class templates and several typedefs
|
||||
#include <sstream> // std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream class templates and several typedefs
|
||||
#include <strstream> // std::strstream, std::istrstream, std::ostrstream(deprecated)
|
||||
#include <iomanip> // Helper functions to control the format or input and output
|
||||
#include <streambuf> // std::basic_streambuf class template
|
||||
#include <cstdio> // C-style input-output functions
|
||||
#include <locale> // Localization utilities
|
||||
#include <clocale> // C localization utilities
|
||||
#include <ciso646> // empty header. The macros that appear in iso646.h in C are keywords in C++
|
||||
#if __cplusplus >= 201103L
|
||||
#include <typeindex> // (since C++11) std::type_index
|
||||
#include <type_traits> // (since C++11) Compile-time type information
|
||||
#include <chrono> // (since C++11) C++ time utilites
|
||||
#include <initializer_list> // (since C++11) std::initializer_list class template
|
||||
#include <tuple> // (since C++11) std::tuple class template
|
||||
#include <scoped_allocator> // (since C++11) Nested allocator class
|
||||
#include <cstdint> // (since C++11) fixed-size types and limits of other types
|
||||
#include <cinttypes> // (since C++11) formatting macros , intmax_t and uintmax_t math and conversions
|
||||
#include <system_error> // (since C++11) defines std::error_code, a platform-dependent error code
|
||||
#include <cuchar> // (since C++11) C-style Unicode character conversion functions
|
||||
#include <array> // (since C++11) std::array container
|
||||
#include <forward_list> // (since C++11) std::forward_list container
|
||||
#include <unordered_set> // (since C++11) std::unordered_set and std::unordered_multiset unordered associative containers
|
||||
#include <unordered_map> // (since C++11) std::unordered_map and std::unordered_multimap unordered associative containers
|
||||
#include <random> // (since C++11) Random number generators and distributions
|
||||
#include <ratio> // (since C++11) Compile-time rational arithmetic
|
||||
#include <cfenv> // (since C++11) Floating-point environment access functions
|
||||
#include <codecvt> // (since C++11) Unicode conversion facilities
|
||||
#include <regex> // (since C++11) Classes, algorithms and iterators to support regular expression processing
|
||||
#include <atomic> // (since C++11) Atomic operations library
|
||||
#include <ccomplex> // (since C++11)(deprecated in C++17) simply includes the header <complex>
|
||||
#include <ctgmath> // (since C++11)(deprecated in C++17) simply includes the headers <ccomplex> (until C++17)<complex> (since C++17) and <cmath>: the overloads equivalent to the contents of the C header tgmath.h are already provided by those headers
|
||||
#include <cstdalign> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
|
||||
#include <cstdbool> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
|
||||
#include <thread> // (since C++11) std::thread class and supporting functions
|
||||
#include <mutex> // (since C++11) mutual exclusion primitives
|
||||
#include <future> // (since C++11) primitives for asynchronous computations
|
||||
#include <condition_variable> // (since C++11) thread waiting conditions
|
||||
#endif
|
||||
#if __cplusplus >= 201300L
|
||||
#include <shared_mutex> // (since C++14) shared mutual exclusion primitives
|
||||
#endif
|
||||
#if __cplusplus >= 201500L
|
||||
#include <any> // (since C++17) std::any class template
|
||||
#include <optional> // (since C++17) std::optional class template
|
||||
#include <variant> // (since C++17) std::variant class template
|
||||
#include <memory_resource> // (since C++17) Polymorphic allocators and memory resources
|
||||
#include <string_view> // (since C++17) std::basic_string_view class template
|
||||
#include <execution> // (since C++17) Predefined execution policies for parallel versions of the algorithms
|
||||
#include <filesystem> // (since C++17) std::path class and supporting functions
|
||||
#endif
|
||||
40
L7Test/nbproject/private/launcher.properties
Normal file
40
L7Test/nbproject/private/launcher.properties
Normal file
@@ -0,0 +1,40 @@
|
||||
# Launchers File syntax:
|
||||
#
|
||||
# [Must-have property line]
|
||||
# launcher1.runCommand=<Run Command>
|
||||
# [Optional extra properties]
|
||||
# launcher1.displayName=<Display Name, runCommand by default>
|
||||
# launcher1.buildCommand=<Build Command, Build Command specified in project properties by default>
|
||||
# launcher1.runDir=<Run Directory, ${PROJECT_DIR} by default>
|
||||
# launcher1.symbolFiles=<Symbol Files loaded by debugger, ${OUTPUT_PATH} by default>
|
||||
# launcher1.env.<Environment variable KEY>=<Environment variable VALUE>
|
||||
# (If this value is quoted with ` it is handled as a native command which execution result will become the value)
|
||||
# [Common launcher properties]
|
||||
# common.runDir=<Run Directory>
|
||||
# (This value is overwritten by a launcher specific runDir value if the latter exists)
|
||||
# common.env.<Environment variable KEY>=<Environment variable VALUE>
|
||||
# (Environment variables from common launcher are merged with launcher specific variables)
|
||||
# common.symbolFiles=<Symbol Files loaded by debugger>
|
||||
# (This value is overwritten by a launcher specific symbolFiles value if the latter exists)
|
||||
#
|
||||
# In runDir, symbolFiles and env fields you can use these macroses:
|
||||
# ${PROJECT_DIR} - project directory absolute path
|
||||
# ${OUTPUT_PATH} - linker output path (relative to project directory path)
|
||||
# ${OUTPUT_BASENAME}- linker output filename
|
||||
# ${TESTDIR} - test files directory (relative to project directory path)
|
||||
# ${OBJECTDIR} - object files directory (relative to project directory path)
|
||||
# ${CND_DISTDIR} - distribution directory (relative to project directory path)
|
||||
# ${CND_BUILDDIR} - build directory (relative to project directory path)
|
||||
# ${CND_PLATFORM} - platform name
|
||||
# ${CND_CONF} - configuration name
|
||||
# ${CND_DLIB_EXT} - dynamic library extension
|
||||
#
|
||||
# All the project launchers must be listed in the file!
|
||||
#
|
||||
# launcher1.runCommand=...
|
||||
# launcher2.runCommand=...
|
||||
# ...
|
||||
# common.runDir=...
|
||||
# common.env.KEY=VALUE
|
||||
|
||||
# launcher1.runCommand=<type your run command here>
|
||||
14
L7Test/nbproject/private/private.xml
Normal file
14
L7Test/nbproject/private/private.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
||||
<code-assistance-data xmlns="http://www.netbeans.org/ns/make-project-private/1">
|
||||
<code-model-enabled>true</code-model-enabled>
|
||||
</code-assistance-data>
|
||||
<data xmlns="http://www.netbeans.org/ns/make-project-private/1">
|
||||
<activeConfTypeElem>1</activeConfTypeElem>
|
||||
<activeConfIndexElem>0</activeConfIndexElem>
|
||||
</data>
|
||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||
<group/>
|
||||
</open-files>
|
||||
</project-private>
|
||||
33
L7Test/nbproject/project.xml
Normal file
33
L7Test/nbproject/project.xml
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://www.netbeans.org/ns/project/1">
|
||||
<type>org.netbeans.modules.cnd.makeproject</type>
|
||||
<configuration>
|
||||
<data xmlns="http://www.netbeans.org/ns/make-project/1">
|
||||
<name>L7Test</name>
|
||||
<c-extensions/>
|
||||
<cpp-extensions>cpp</cpp-extensions>
|
||||
<header-extensions>h</header-extensions>
|
||||
<sourceEncoding>UTF-8</sourceEncoding>
|
||||
<make-dep-projects>
|
||||
<make-dep-project>../L7</make-dep-project>
|
||||
</make-dep-projects>
|
||||
<sourceRootList/>
|
||||
<confList>
|
||||
<confElem>
|
||||
<name>Debug</name>
|
||||
<type>1</type>
|
||||
</confElem>
|
||||
<confElem>
|
||||
<name>Release</name>
|
||||
<type>1</type>
|
||||
</confElem>
|
||||
</confList>
|
||||
<formatting>
|
||||
<project-formatting-style>true</project-formatting-style>
|
||||
<c-style>Apache|Apache</c-style>
|
||||
<cpp-style>Apache|Apache</cpp-style>
|
||||
<header-style>Apache|Apache</header-style>
|
||||
</formatting>
|
||||
</data>
|
||||
</configuration>
|
||||
</project>
|
||||
338
L7Test/sql/postgresql.sql
Normal file
338
L7Test/sql/postgresql.sql
Normal file
@@ -0,0 +1,338 @@
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SET check_function_bodies = false;
|
||||
SET client_min_messages = warning;
|
||||
|
||||
--
|
||||
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:
|
||||
--
|
||||
|
||||
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
|
||||
|
||||
|
||||
--
|
||||
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner:
|
||||
--
|
||||
|
||||
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
|
||||
|
||||
|
||||
SET search_path = public, pg_catalog;
|
||||
|
||||
SET default_tablespace = '';
|
||||
|
||||
SET default_with_oids = false;
|
||||
|
||||
--
|
||||
-- Name: list1; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
|
||||
--
|
||||
|
||||
CREATE TABLE list1 (
|
||||
id_list1 integer NOT NULL,
|
||||
item character varying(50) DEFAULT (NOT NULL::boolean)
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.list1 OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- Name: list1_id_list1_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE SEQUENCE list1_id_list1_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
|
||||
ALTER TABLE public.list1_id_list1_seq OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- Name: list1_id_list1_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER SEQUENCE list1_id_list1_seq OWNED BY list1.id_list1;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl1; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
|
||||
--
|
||||
|
||||
CREATE TABLE tbl1 (
|
||||
pk1 integer NOT NULL,
|
||||
text1 character varying(255) NOT NULL,
|
||||
check1d integer DEFAULT 0,
|
||||
check1t integer,
|
||||
combo1t integer,
|
||||
combo1x character varying(50),
|
||||
date1 date,
|
||||
spin1 integer DEFAULT 3,
|
||||
rand1 integer DEFAULT round((random() * (10000000)::double precision)) NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.tbl1 OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- Name: tbl1_pk1_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE SEQUENCE tbl1_pk1_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
|
||||
ALTER TABLE public.tbl1_pk1_seq OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- Name: tbl1_pk1_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER SEQUENCE tbl1_pk1_seq OWNED BY tbl1.pk1;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl2; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
|
||||
--
|
||||
|
||||
CREATE TABLE tbl2 (
|
||||
pk2 integer NOT NULL,
|
||||
pk1 integer NOT NULL,
|
||||
text2 character varying(255) NOT NULL,
|
||||
check2d integer DEFAULT 0,
|
||||
check2t integer,
|
||||
combo2t integer,
|
||||
combo2x character varying(50),
|
||||
date2 date,
|
||||
spin2 integer DEFAULT 5,
|
||||
rand1 integer
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.tbl2 OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- Name: tbl2_pk2_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE SEQUENCE tbl2_pk2_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
|
||||
ALTER TABLE public.tbl2_pk2_seq OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- Name: tbl2_pk2_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER SEQUENCE tbl2_pk2_seq OWNED BY tbl2.pk2;
|
||||
|
||||
|
||||
--
|
||||
-- Name: id_list1; Type: DEFAULT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY list1 ALTER COLUMN id_list1 SET DEFAULT nextval('list1_id_list1_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: pk1; Type: DEFAULT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY tbl1 ALTER COLUMN pk1 SET DEFAULT nextval('tbl1_pk1_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: pk2; Type: DEFAULT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY tbl2 ALTER COLUMN pk2 SET DEFAULT nextval('tbl2_pk2_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Data for Name: list1; Type: TABLE DATA; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
COPY list1 (id_list1, item) FROM stdin;
|
||||
1 List1Item1
|
||||
2 List1Item2
|
||||
3 List1Item3
|
||||
4 List1Item4
|
||||
5 List1Item5
|
||||
\.
|
||||
|
||||
|
||||
--
|
||||
-- Name: list1_id_list1_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
SELECT pg_catalog.setval('list1_id_list1_seq', 5, true);
|
||||
|
||||
|
||||
--
|
||||
-- Data for Name: tbl1; Type: TABLE DATA; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
COPY tbl1 (pk1, text1, check1d, check1t, combo1t, combo1x, date1, rand1) FROM stdin;
|
||||
\.
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl1_pk1_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
SELECT pg_catalog.setval('tbl1_pk1_seq', 0, true);
|
||||
|
||||
|
||||
--
|
||||
-- Data for Name: tbl2; Type: TABLE DATA; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
COPY tbl2 (pk2, pk1, text2, check2d, check2t, combo2t, combo2x, date2, rand1) FROM stdin;
|
||||
\.
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl2_pk2_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
SELECT pg_catalog.setval('tbl2_pk2_seq', 0, true);
|
||||
|
||||
|
||||
--
|
||||
-- Name: list1_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY list1
|
||||
ADD CONSTRAINT list1_pkey PRIMARY KEY (id_list1);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl1_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY tbl1
|
||||
ADD CONSTRAINT tbl1_pkey PRIMARY KEY (pk1);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl2_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY tbl2
|
||||
ADD CONSTRAINT tbl2_pkey PRIMARY KEY (pk2);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl1_combo1t_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY tbl1
|
||||
ADD CONSTRAINT tbl1_combo1t_fkey FOREIGN KEY (combo1t) REFERENCES list1(id_list1);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl2_combo2t_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY tbl2
|
||||
ADD CONSTRAINT tbl2_combo2t_fkey FOREIGN KEY (combo2t) REFERENCES list1(id_list1);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl2_pk1_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY tbl2
|
||||
ADD CONSTRAINT tbl2_pk1_fkey FOREIGN KEY (pk1) REFERENCES tbl1(pk1);
|
||||
|
||||
|
||||
--
|
||||
-- Name: public; Type: ACL; Schema: -; Owner: postgres
|
||||
--
|
||||
|
||||
REVOKE ALL ON SCHEMA public FROM PUBLIC;
|
||||
REVOKE ALL ON SCHEMA public FROM postgres;
|
||||
GRANT ALL ON SCHEMA public TO postgres;
|
||||
GRANT ALL ON SCHEMA public TO PUBLIC;
|
||||
|
||||
|
||||
--
|
||||
-- Name: list1; Type: ACL; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE list1 FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE list1 FROM postgres;
|
||||
GRANT ALL ON TABLE list1 TO postgres;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE list1 TO l7;
|
||||
|
||||
|
||||
--
|
||||
-- Name: list1_id_list1_seq; Type: ACL; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
REVOKE ALL ON SEQUENCE list1_id_list1_seq FROM PUBLIC;
|
||||
REVOKE ALL ON SEQUENCE list1_id_list1_seq FROM postgres;
|
||||
GRANT ALL ON SEQUENCE list1_id_list1_seq TO postgres;
|
||||
GRANT SELECT,UPDATE ON SEQUENCE list1_id_list1_seq TO l7;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl1; Type: ACL; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE tbl1 FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE tbl1 FROM postgres;
|
||||
GRANT ALL ON TABLE tbl1 TO postgres;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE tbl1 TO l7;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl1_pk1_seq; Type: ACL; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
REVOKE ALL ON SEQUENCE tbl1_pk1_seq FROM PUBLIC;
|
||||
REVOKE ALL ON SEQUENCE tbl1_pk1_seq FROM postgres;
|
||||
GRANT ALL ON SEQUENCE tbl1_pk1_seq TO postgres;
|
||||
GRANT SELECT,UPDATE ON SEQUENCE tbl1_pk1_seq TO l7;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl2; Type: ACL; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE tbl2 FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE tbl2 FROM postgres;
|
||||
GRANT ALL ON TABLE tbl2 TO postgres;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE tbl2 TO l7;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl2_pk2_seq; Type: ACL; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
REVOKE ALL ON SEQUENCE tbl2_pk2_seq FROM PUBLIC;
|
||||
REVOKE ALL ON SEQUENCE tbl2_pk2_seq FROM postgres;
|
||||
GRANT ALL ON SEQUENCE tbl2_pk2_seq TO postgres;
|
||||
GRANT SELECT,UPDATE ON SEQUENCE tbl2_pk2_seq TO l7;
|
||||
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
35
L7Test/sql/sqlite.sql
Normal file
35
L7Test/sql/sqlite.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
CREATE TABLE "List1" (
|
||||
"ID_List1" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
"Item" TEXT NOT NULL
|
||||
);
|
||||
CREATE TABLE tbl2 (
|
||||
"PK2" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
"PK1" INTEGER NOT NULL,
|
||||
"text2" TEXT NOT NULL,
|
||||
"check2d" INTEGER,
|
||||
"check2t" INTEGER,
|
||||
"combo2t" INTEGER,
|
||||
"combo2x" TEXT,
|
||||
"date2" TEXT,
|
||||
"spin2" INTEGER DEFAULT 5,
|
||||
"rand1" INTEGER NOT NULL DEFAULT (abs(random())),
|
||||
foreign key (combo2t) references list1(id_list1),
|
||||
foreign key (pk1) references tbl1(pk1)
|
||||
);
|
||||
CREATE TABLE tbl1 (
|
||||
"PK1" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
"text1" TEXT NOT NULL,
|
||||
"check1d" INTEGER,
|
||||
"check1t" INTEGER,
|
||||
"combo1t" INTEGER,
|
||||
"combo1x" TEXT,
|
||||
"date1" TEXT,
|
||||
"spin1" INTEGER DEFAULT 3,
|
||||
"rand1" INTEGER NOT NULL DEFAULT (abs(random()))
|
||||
);
|
||||
|
||||
INSERT INTO List1 VALUES(1, 'List1Item1');
|
||||
INSERT INTO List1 VALUES(2, 'List1Item2');
|
||||
INSERT INTO List1 VALUES(3, 'List1Item3');
|
||||
INSERT INTO List1 VALUES(4, 'List1Item4');
|
||||
INSERT INTO List1 VALUES(5, 'List1Item5');
|
||||
Reference in New Issue
Block a user