VC2005 ADO
От: Force_Majeure Россия  
Дата: 26.06.09 04:30
Оценка:
Подскажите, пожалуйста, как правильно подсоединяться к БД через ADO в проекте VC200 Windows Forms?
Я делаю так:
Через свойства проекта — Common properties — Reference подключил библиотеку msado15.dll
В проекте соединяюсь с базой так:
ADODB::Connection ^ conADO;
conADO = gcnew ADODB::Connection;
String ^ strConnection;
strConnection = (L"Provider=MSDASQL.1;Persist Security Info=False;Data Source=Lototron;Extended Properties='DSN=Lototron;DBQ=D:\\Loto.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;';Initial Catalog=D:\\Loto.mdb");
conADO->Open(strConnection,L"",L"",0);
ADODB::RecordsetClass ^ rp;
rp = gcnew ADODB::RecordsetClass();
rp->Open(L"select * from names;",conADO,ADODB::CursorTypeEnum::adOpenDynamic,ADODB::LockTypeEnum::adLockBatchOptimistic,8);

// Как здесь теперь получить выбранные поля и значения? Свойство Fields у ADODB::RecordsetClass недоступно.

conADO->Close();





26.06.09 14:55: Перенесено модератором из 'C/C++' — Кодт
Re: VC2005 ADO
От: Воронков Василий Россия  
Дата: 26.06.09 12:14
Оценка:
Здравствуйте, Force_Majeure, Вы писали:

А зачем вам АДО? Чем АДО.НЕТ не устраивает?
Re[2]: VC2005 ADO
От: Force_Majeure Россия  
Дата: 26.06.09 12:45
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, Force_Majeure, Вы писали:


ВВ>А зачем вам АДО? Чем АДО.НЕТ не устраивает?



Подскажите, пожалуйста, как это все работает через ADO.НЕТ. Я описание чего смог найти в интернете, тем и воспользовался.
Re[3]: VC2005 ADO
От: Воронков Василий Россия  
Дата: 26.06.09 12:55
Оценка:
Здравствуйте, Force_Majeure, Вы писали:

F_M>Подскажите, пожалуйста, как это все работает через ADO.НЕТ. Я описание чего смог найти в интернете, тем и воспользовался.


Вы с аксесом соединяетесь? Как-то так:

using namespace System::Data::SqliteClient;
...
OleDbConnection^ conn = gcnew OleDbConnection(L"[connection string]");
OleDbCommand^ cmd = gcnew OleDbCommand(cmd, L"select * from bla-bla-bla");
OleDbDataAdapter^ da = gcnew OleDbDataAdapter(cmd);
conn->Open();
DataSet^ ds = gcnew DataSet();
da->Fill(ds);
delete conn;
delete cmd;
return ds;
Re[4]: VC2005 ADO
От: Ziaw Россия  
Дата: 26.06.09 13:21
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>
ВВ>using namespace System::Data::SqliteClient;
ВВ>...
ВВ>OleDbConnection^ conn = gcnew OleDbConnection(L"[connection string]");
ВВ>OleDbCommand^ cmd = gcnew OleDbCommand(cmd, L"select * from bla-bla-bla");
ВВ>OleDbDataAdapter^ da = gcnew OleDbDataAdapter(cmd);
conn->>Open();
ВВ>DataSet^ ds = gcnew DataSet();
da->>Fill(ds);
ВВ>delete conn;
ВВ>delete cmd;
ВВ>return ds;
ВВ>


Интересно, в каком состоянии будет da после этой сроки. В C# нельзя руками освободить используемую память, а что происходит здесь?
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
Re[5]: VC2005 ADO
От: Воронков Василий Россия  
Дата: 26.06.09 13:24
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Интересно, в каком состоянии будет da после этой сроки. В C# нельзя руками освободить используемую память, а что происходит здесь?


А здесь тоже нельзя. Это не указатели, а хэндлы. Таким образом Dispose вызывается.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.