Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual2.doc
Скачиваний:
5
Добавлен:
07.03.2016
Размер:
3.31 Mб
Скачать

Void cAdo6Dlg::xmlOpen()

{

CFileDialog OpenDialog(true, "", "",

OFN_FILEMUSTEXIST |OFN_HIDEREADONLY,

"Xml (*.xml)|*.xml|");

if (OpenDialog.DoModal()!=IDOK) return;

CString str = OpenDialog.GetPathName();

show(SW_SHOW,1);

m_editquery.SetWindowText("");

try

{

//Реалізація SQL - запиту

Recordset_Baza(str);

// Прив’язка об’єкту Recordset до Datagrid

m_datagrid1.SetRefDataSource(pRecordset);

//Приховування списку таблиць

GetDlgItem(IDC_STAT_TAB)->ShowWindow(SW_HIDE);

GetDlgItem(IDC_LIST_TAB)->ShowWindow(SW_HIDE);

//Структура полів

_RecordsetPtr pRec;

pRec = pConn->Execute((_bstr_t)str,0,adCmdTable);

m_pol.ResetContent();

for(long i=0;i<pRec->GetFields()->GetCount();i++)

{

str = (char*)(_bstr_t)pRec->GetFields ()->

GetItem ((_variant_t)i)->GetName ();

str+="-";

str+=(_bstr_t)(long)pRec->GetFields ()->

GetItem ((_variant_t)i)->GetType ();

m_pol.AddString (str);

}

pRec->Close();

pRec.Release();

//////////////////////////////

if (fields->GetCount()==5&&fields->

GetItem(4L)->Name==(_bstr_t)"log") show();

else show(SW_SHOW,1);

//Приховування кнопок

GetDlgItem(IDC_BUTTON_SELECT)->ShowWindow (SW_HIDE);

GetDlgItem(IDC_BUTTON_MAKE)->ShowWindow (SW_HIDE);

GetDlgItem(IDC_BUTTON_FORMIRBD)->ShowWindow (SW_HIDE);

}

catch(_com_error &ce)

{

Doc->ErrMessage(ce);

}

m_editquery.SetFocus ();

}

// Виведення структури БД (список таблиць БД і полів

// з обраної таблиці)

Void cAdo6Dlg::Structura_bd()

{

// Формування списку таблиць

CString str;

_RecordsetPtr pTables;

pTables = pConn->OpenSchema(ADODB::adSchemaTables);

m_tab.ResetContent();

while (!pTables->ADO_EOF)

{

str = (char *)(_bstr_t) pTables->GetFields()->

GetItem ((_variant_t) "TABLE_TYPE")->

GetValue();

if (!str.Compare("TABLE"))

m_tab.AddString ((_bstr_t)pTables->GetFields()->

GetItem ((_variant_t)"TABLE_NAME")->

GetValue());

pTables->MoveNext();

}

pTables->Close(); // закриття курсору

}

// Виведення полів у лістбокс по заданій таблиці

Void cAdo6Dlg::OnSelchangeListTab()

{

CString str;

m_pol.ResetContent();

if (m_tab.GetCurSel()<0)

{

MessageBox ("Таблиця не вибрана");

return;

}

m_tab.GetText (m_tab.GetCurSel(), str);

table = str;

table.MakeUpper();

str = "` "+ str +"`";

_RecordsetPtr pRec;

// Створення об'єкта Recordset через об'єкт Connection

// 1-й параметр - ім'я таблиці

// 2-й параметр - кількість повертаються записів

// Оскільки Recordset створюється на стороні сервера

// даний параметр не враховується і дорівнює нулю.

// 3-й параметр adCmdTable вказує, що Recordset

// створюється за вказаною імені таблиці

pRec = pConn->Execute((_bstr_t)str, 0, adCmdTable);

for(long i=0; i<pRec->GetFields()->GetCount(); i++)

{

str = (char*)(_bstr_t) pRec->GetFields()->

GetItem((_variant_t)i)->GetName();

str += "-";

str += (_bstr_t)(long) pRec->GetFields()->

GetItem((_variant_t)i)->GetType();

m_pol.AddString(str);

}

pRec->Close();

// Виведення запиту за таблицею лістбокса

str = "SELECT * FROM ";

str = str +"`"+ table +"`";

m_editquery.SetWindowText(str);

OnZapros_Select();

GetDlgItem(IDC_STATIC2)->SetWindowText(

"Робота з таблицею " + table);

}

// --- Користувацькі функції (MySQL і ACCESS) ---

// Функція відображення / приховування елементів управління

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]