ADOConnection1->ConnectionString = "FILE NAME=Server.udl";
try {
ADOConnection1->Connected = true;
}catch(...){
if (ADOConnection1->Connected == false){
MessageBox(0,"Не удалось подключиться.",0,MB_OK);
}
}
ADO для чайника
Может ссылочку какую...
begin
cat := CreateOleObject('ADOX.Catalog');
cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';');
cat := NULL;
end;
Так на Delphi.
Для подключения к серверу создаю файл .udl, который легко настроить кликнув на него мышкой два раза.
Так я подключаюсь к серверу:
Код:
Это функция для SQL запросов. Первый параметр - запрос.
Второй - флаг, должен ли запрос возвратить данные. Мне
пока не удалось найти способ как определить автоматически
вернулись ли данные от процедуры на сервере. Возвращается статус
выполнения, если все нормально, то возвращается true иначе false.
Вызывать например так SQLEx("select * from mytable",true); или так
SQLEx("update mytable set column1=2 where column2=3",false);
Код:
bool __fastcall TForm1::SQLEx(AnsiString sqlreq,bool rs)
{
if (ADOConnection1->Connected)
{
ADOCommand1->CommandText = sqlreq;
ADOCommand1->Prepared = true;
_di__Recordset Recordset = ADOCommand1->Execute();
if (rs)ADODataSet1->Recordset = Recordset;
ADOCommand1->Prepared = false;
return true;
}else{
return false;
}
}
{
if (ADOConnection1->Connected)
{
ADOCommand1->CommandText = sqlreq;
ADOCommand1->Prepared = true;
_di__Recordset Recordset = ADOCommand1->Execute();
if (rs)ADODataSet1->Recordset = Recordset;
ADOCommand1->Prepared = false;
return true;
}else{
return false;
}
}
Так я получаю данные от сервера:
Код:
ADODataSet1->DisableControls();
try
{
for (ADODataSet1->First(); !ADODataSet1->Eof; ADODataSet1->Next())
{
ShowMessage(ADODataSet1->FieldByName["column1"]->AsString);
}
}
__finally
{
ADODataSet1->EnableControls();
}
try
{
for (ADODataSet1->First(); !ADODataSet1->Eof; ADODataSet1->Next())
{
ShowMessage(ADODataSet1->FieldByName["column1"]->AsString);
}
}
__finally
{
ADODataSet1->EnableControls();
}
Для подключения к серверу создаю файл .udl, который легко настроить [/QUOTE]
А как его создают и для чего?
Создавать БД для ADO лучше всего в Microsoft Access. А работать с ними через ADO проще простого.
Для связи с БД используется сомпонент ADOConnection. Для формирования ConnectionString есть встроенный мастер подключения, который вызывается щелчком по прилагаемой к полю кнопке "...".
1. Выбираем движок БД - для Access используется Microsoft Jet
2. Указываем имя файла с БД (для Access).
3. Указываем логин и пароль (по умолчанию это "Admin" и "":) )
4. Нажимаем кнопку "Test Connection". Должно быть "Ok"
5. При желании настраиваем правила совместного доступа.
Полученную строку можно объявить константой, заменив отдельные значения символами подстановки, и подстовлять в неё имя используемого файла и другие указываемые параметры.
Код:
const AnsiString cConnection_String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s";
...
TForm1::TForm1 () //конструктор окна
{[INDENT]
AnsiString DB_Name = ExtractPath (Application->ExeName) + "Database.mdb";
if (!FileExits (DB_Name)[INDENT]throw Exception("Файл базы данных не найден");[/INDENT]ADOConn->ConnectionString = Format (cConnection_String, ARRAYOFCONST ((DB_Name));
ADOConn->Connected = true;
[/INDENT]}
...
TForm1::TForm1 () //конструктор окна
{[INDENT]
AnsiString DB_Name = ExtractPath (Application->ExeName) + "Database.mdb";
if (!FileExits (DB_Name)[INDENT]throw Exception("Файл базы данных не найден");[/INDENT]ADOConn->ConnectionString = Format (cConnection_String, ARRAYOFCONST ((DB_Name));
ADOConn->Connected = true;
[/INDENT]}
Данная программа при загрузке подключает базу данных из каталога программы, где бы она не находилась.