I'm here with a problem again, I just not get resolved. Unfortunately I am under extreme time pressure. So I would be incredibly grateful for a quick help Sorry and thanks you.
Table definition:
Code: Select all
// Patch
memset (&loc_Patch, 0, sizeof(loc_Patch));
loc_Patch_table = new wxDbTable (db, _("Patch"), 7, _(""), _(""), wxDB_DEFAULT_CURSOR, _(""));
col = 0;
loc_Patch_table -> SetColDefs (col++, _("patchID"), DB_DATA_TYPE_INTEGER, &(loc_Patch.patchID), SQL_C_SLONG, sizeof(&(loc_Patch.patchID)), true, false, false);
loc_Patch_table -> SetColDefs (col++, _("socketID"), DB_DATA_TYPE_INTEGER, &(loc_Patch.socketID), SQL_C_SLONG, sizeof(loc_Patch.socketID), false, true);
loc_Patch_table -> SetColDefs (col++, _("switchID"), DB_DATA_TYPE_INTEGER, &(loc_Patch.switchID), SQL_C_SLONG, sizeof(loc_Patch.switchID), false, true);
loc_Patch_table -> SetColDefs (col++, _("patchWire"), DB_DATA_TYPE_VARCHAR, &(loc_Patch.patchWire), SQL_C_WXCHAR, sizeof(loc_Patch.patchWire), false, true);
loc_Patch_table -> SetColDefs (col++, _("patchPort"), DB_DATA_TYPE_VARCHAR, &(loc_Patch.patchPort), SQL_C_WXCHAR, sizeof(loc_Patch.patchPort), false, true);
loc_Patch_table -> SetColDefs (col++, _("patchNetwork"), DB_DATA_TYPE_VARCHAR, &(loc_Patch.patchNetwork), SQL_C_WXCHAR, sizeof(loc_Patch.patchNetwork), false, true);
loc_Patch_table -> SetColDefs (col++, _("patchUplink"), DB_DATA_TYPE_INTEGER, &(loc_Patch.patchUplink), SQL_C_SLONG, sizeof(loc_Patch.patchUplink), false, true);
if (!loc_Patch_table->Open ())
{
wxLogError (_("Table Patch open fail"));
return false;
}
Code: Select all
wxString where, orderby, from;
where = _("Patch.socketID = Socket.socketID");
from = _("Socket");
orderby = _("");
patch = con->GetSDA_Patch(where, orderby, from);
tab_Patch *DBConnection::GetSDA_Patch (wxString where, wxString orderBy, wxString from)
{
tab_Patch *tmp = new tab_Patch;
memset(tmp, 0, sizeof (tab_Patch));
loc_Patch_table -> SetWhereClause(where);
loc_Patch_table -> SetOrderByClause(orderBy);
loc_Patch_table -> SetFromClause(from);
if (!loc_Patch_table ->Query(false, true))
{
// HERE I GET IN, everytime
wxMessageBox(_("error"));
}
if (!loc_Patch_table ->GetNext())
{
delete tmp;
return 0;
}
memcpy(tmp, &loc_Patch , sizeof (tab_Patch));
memset(&loc_Patch, 0, sizeof (tab_Patch));
return tmp;
}
Code: Select all
Socket:
socketID
socketName
Patch:
patchID
socketID
...
Thank you!