![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать чтобы программа подключалась к БД?
Kolan © (2006-11-16 20:18:00)Здравствуйте,
Использую MSSQL Server + ADO. На работе создал строку подключения:
FADOCOnnection.ConnectionString :=
'Provider=SQLOLEDB.1;Integrated Security=SSPI;'+
'Persist Security Info=False;'+
'Initial Catalog=KFreGrafDB;'+
'Data Source=KOLAN-3F4JGL';
Прихожу домой ессно не работает - не подключается.
Как сделать так, чтобы если не подключается программа предлогала настроить/создать подключение?
ЗЫ
Предпоследний тупой вопрос по БД :)
Kolan (2006-11-16 22:48:00) [1]> но лучше поставить своего
Да, понял, только класс, в котором это все творится не знает ничего об окнах. Добавить параметр в конструктор что-ли?
sniknik (2006-11-16 22:23:00) [2]> А что такое ParentHandle
хендл окна родителя для вновь открывшегося, можно конечно и десктоп... но лучше поставить своего, не будет "провалов" за главное окно при некоторых ситуациях. (это не только для этого это любого окна касается, с диалоговыми случается часто при таком стиле (есть у нас один любитель Windows.MessageBox(0, ....) писать... убил бы гада, или уволил, жаль не в моей власти, столько неприятных ситуаций изза этого было))
Kolan (2006-11-16 22:07:00) [3]> sniknik © (16.11.06 21:54)
Понял.
FADOCOnnection.ConnectionString := PromptDataSource(0, '');
Вроде это то, что надо. А что такое ParentHandle или правильные ли я передал параметры?
sniknik (2006-11-16 21:59:00) [4]> Как так вышло?
при подключении подставились все умолчания.
см. [2], минимум что нужно, да и то базу можно тоже убрать тогда по умолчанию будет master а выбирать свою можно уже потом sql-ем "USE xxxx"
Anatoly Podgoretsky (2006-11-16 21:56:00) [5]> Kolan (16.11.2006 21:49:09) [9]
> Да, у меня не SQL server, а MSDE.
Это полноценный MS SQL server предназначенный для персонального использования.
А сейчас ты привел уже другую строку подключения.
sniknik (2006-11-16 21:54:00) [6]> Стер 'Data Source=KOLAN-3F4JGL' И подключилось... Оно что само все делает? Как это работает?
не само, пустая строка это тоже значение, в данном случае это алиас означающий самого себя, так же как LocalHost, (local), просто точка ".", или 127.0.0.1 , все это сработает аналогично, по разным причинам но должно все (если не менять настройки).
Kolan (2006-11-16 21:49:00) [7]> Говоришь загадками, но видимо речь идет про LocalHost
Какие загадки. В тексте программы записанно [6]. +FADOCOnnection.LoginPrompt := False;(может из-за этого).
А после запуска:
Watch Name Value
FADOCOnnection.ConnectionString 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=KFreGrafDB;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=KSOFTWARE;Use Encryption for Data=False;Tag with column collation when possible=False'
Как так вышло?
LocalHost
Шас эксперементирую на локальном... В итоге должно быть для любого.
ЗЫ
Да, у меня не SQL server, а MSDE.
Anatoly Podgoretsky (2006-11-16 21:40:00) [8]> Kolan (16.11.2006 21:25:06) [6]
Говоришь загадками, но видимо речь идет про LocalHost
Anatoly Podgoretsky (2006-11-16 21:39:00) [9]> Kolan (16.11.2006 20:51:05) [5]
Не надо было так далеко бегать, когда у тебя в Демос лежит отличный пример.
Kolan (2006-11-16 21:25:00) [10]
FADOCOnnection.ConnectionString :=
'Provider=SQLOLEDB.1;Integrated Security=SSPI;'+
'Persist Security Info=False;'+
'Initial Catalog=KFreGrafDB;'+
' Data Source=';
Стер 'Data Source= KOLAN-3F4JGL' И подключилось... Оно что само все делает? Как это работает?
Kolan (2006-11-16 20:51:00) [11]Поискач по
(EditConnectionString (uses AdoConed), PromptDataSource).нашел на королевстве топик.
Вот кусок кода из него:
procedure TForm1.FormShow(Sender: TObject);
begin
ADOConnection1.LoginPrompt := False; {Не показываем окошко со вводом пароля итд}
ADOConnection1.Close;
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1\;'+
'Extended Properties=dBase 5.0;Mode=Read|Write|Share Deny None;'+
'Persist Security Info=True'; {Указываем Строку соединения с базой через драйвер Microsoft.Jet.OLEDB.4.0 . Нужно просто указать папку с таблицами, в данном случае это "c:\1\"}
end;
Дык это мне что просто Data Source подставить надо где база или как? Или это не для MSSQL?
Kolan (2006-11-16 20:48:00) [12]> кстати как вариант, если это нужно просто чтобы работало
> и на работе и дома
Не надо чтобы в любом случае работало даже если БД на другой машине.
Kolan (2006-11-16 20:47:00) [13]> запрограммировать это! ...
Ага, что-то проясняется :)
> можеш сам составлять строку подключения
Не немогу.
EditConnectionString(FADOCOnnection);
Получил AV
PromptDataSource
Не понял как работает и в справеке нет...
> ну сам виноват будеш если будет два...
Нет последний я еще не шас спрошу, а так через месяцок :)
Хотелось бы вызвать стандартный диалог настроки этой строки. Вроде в ODBC есть такой?
sniknik (2006-11-16 20:41:00) [14]кстати как вариант, если это нужно просто чтобы работало и на работе и дома, не указывать сервер (он у меня в обоих случаях локально, но имена машин разные, как и mssql-ная авторизация)
поэтому у меня часто строка коннекта выглядит, как
Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog=MyBase
и все, остальное по умолчанию, и не приходится переподключатся, хотя возможность настроить конечно есть, но не при старте если не удалось, а отдельным пунктом, и я этим каждый раз при переносе с работы домо/обратно уже не занимаюсь.
sniknik (2006-11-16 20:33:00) [15]> Как сделать так, чтобы если не подключается программа предлогала настроить/создать подключение?
запрограммировать это! ...
можеш сам составлять строку подключения, можеш использовать udl файлы указывать в строке его (сделай пустой текстовый, поменяй ему расширение на udl и щелкни на нем в проводнике, или выполни через пуск, поймеш), можеш программный выбор составления строки (EditConnectionString (uses AdoConed), PromptDataSource).
> Предпоследний тупой вопрос по БД :)
ну сам виноват будеш если будет два...