| Deatz 
								Гость
 | 
								|  | «  : 17-06-2008 15:06 »  |  | 
 
 Здравствуйте! Вопрос у меня следующий: есть база данных, из которой нужно прочитать таблицу в Visual C++. Видимо, что-то я делаю не так. Требуется открыть файл IP.SHL. Вот текст программы:
 int CHardwareConfiguratorDlg::ReadDatabase()
 {
 HRESULT hr;
 CoInitialize(NULL);
 
 try
 {
 ADODB::_ConnectionPtr connection;
 hr = connection.CreateInstance(__uuidof(ADODB::Connection));
 if(FAILED(hr))
 {
 return -1;
 };
 
 ADODB::_RecordsetPtr recordset;
 hr = recordset.CreateInstance(__uuidof(ADODB::Recordset));
 if(FAILED(hr))
 {
 return -1;
 };
 
 connection->CursorLocation = ADODB::adUseClient;
 
 connection->Open("IP",
 "",
 "",
 ADODB::adConnectUnspecified);
 
 connection->Open(L"Provider=sqloledb;Data Source=fifa;"
 L"Initial Catalog=test;User Id=testsa;Password=testsa;", L"",
 L"", ADODB::adConnectUnspecified);
 
 recordset->Open("CREATE TABLE mytable (value NVARCHAR(255))",
 connection.GetInterfacePtr(), ADODB::adOpenForwardOnly,
 ADODB::adLockReadOnly, ADODB::adCmdText);
 
 recordset->Open("INSERT INTO mytable VALUES ('Hello')",
 connection.GetInterfacePtr(), ADODB::adOpenForwardOnly,
 ADODB::adLockReadOnly, ADODB::adCmdText);
 
 recordset->Open("INSERT INTO mytable VALUES ('Goodbye')",
 connection.GetInterfacePtr(), ADODB::adOpenForwardOnly,
 ADODB::adLockReadOnly, ADODB::adCmdText);
 
 recordset->Open("SELECT * from mytable",
 connection.GetInterfacePtr(),
 ADODB::adOpenForwardOnly, ADODB::adLockReadOnly,
 ADODB::adCmdText);
 
 recordset->Close();
 recordset->Open("DROP TABLE mytable", connection.GetInterfacePtr(),
 ADODB::adOpenForwardOnly, ADODB::adLockReadOnly,
 ADODB::adCmdText);
 }
 catch(_com_error &e)
 {
 return -1;
 }
 catch(...)
 {
 return -1;
 };
 
 return 0;
 };
 |