Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

Как сделать чтобы программа подключалась к БД?   Найти похожие ветки 

 
Kolan ©   (2006-11-16 20:18) [0]

Здравствуйте,
 Использую MSSQL Server + ADO. На работе создал строку подключения:
FADOCOnnection.ConnectionString :=
   "Provider=SQLOLEDB.1;Integrated Security=SSPI;"+
   "Persist Security Info=False;"+
   "Initial Catalog=KFreGrafDB;"+
   "Data Source=KOLAN-3F4JGL";


Прихожу домой ессно не работает - не подключается.
Как сделать так, чтобы если не подключается программа предлогала настроить/создать подключение?

ЗЫ
 Предпоследний тупой вопрос по БД :)


 
sniknik ©   (2006-11-16 20:33) [1]

> Как сделать так, чтобы если не подключается программа предлогала настроить/создать подключение?
запрограммировать это! ...
можеш сам составлять строку подключения, можеш использовать udl файлы указывать в строке его (сделай пустой текстовый, поменяй ему расширение на udl и щелкни на нем в проводнике, или выполни через пуск, поймеш), можеш программный выбор составления строки (EditConnectionString (uses AdoConed), PromptDataSource).

> Предпоследний тупой вопрос по БД :)
ну сам виноват будеш если будет два...


 
sniknik ©   (2006-11-16 20:41) [2]

кстати как вариант, если это нужно просто чтобы работало и на работе и дома, не указывать сервер (он у меня в обоих случаях локально, но имена машин разные, как и mssql-ная авторизация)
поэтому у меня часто строка коннекта выглядит, как  

Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog=MyBase

и все, остальное по умолчанию, и не приходится переподключатся, хотя возможность настроить конечно есть, но не при старте если не удалось, а отдельным пунктом, и я этим каждый раз при переносе с работы домо/обратно уже не занимаюсь.


 
Kolan ©   (2006-11-16 20:47) [3]

> запрограммировать это! ...

Ага, что-то проясняется :)

> можеш сам составлять строку подключения

Не немогу.

EditConnectionString(FADOCOnnection);
Получил AV

PromptDataSource
Не понял как работает и в справеке нет...


> ну сам виноват будеш если будет два...

Нет последний я еще не шас спрошу, а так через месяцок :)

Хотелось бы вызвать стандартный диалог настроки этой строки. Вроде в ODBC есть такой?


 
Kolan ©   (2006-11-16 20:48) [4]

> кстати как вариант, если это нужно просто чтобы работало
> и на работе и дома

Не надо чтобы в любом случае работало даже если БД на другой машине.


 
Kolan ©   (2006-11-16 20:51) [5]

Поискач по (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 21:25) [6]

FADOCOnnection.ConnectionString :=
   "Provider=SQLOLEDB.1;Integrated Security=SSPI;"+
   "Persist Security Info=False;"+
   "Initial Catalog=KFreGrafDB;"+
   "Data Source=";


Стер "Data Source=KOLAN-3F4JGL" И подключилось... Оно что само все делает? Как это работает?


 
Anatoly Podgoretsky ©   (2006-11-16 21:39) [7]

> Kolan  (16.11.2006 20:51:05)  [5]

Не надо было так далеко бегать, когда у тебя в Демос лежит отличный пример.


 
Anatoly Podgoretsky ©   (2006-11-16 21:40) [8]

> Kolan  (16.11.2006 21:25:06)  [6]

Говоришь загадками, но видимо речь идет про LocalHost


 
Kolan ©   (2006-11-16 21:49) [9]

> Говоришь загадками, но видимо речь идет про 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.


 
sniknik ©   (2006-11-16 21:54) [10]

> Стер "Data Source=KOLAN-3F4JGL" И подключилось... Оно что само все делает? Как это работает?
не само, пустая строка это тоже значение, в данном случае это алиас означающий самого себя, так же как LocalHost, (local), просто точка ".", или 127.0.0.1 , все это сработает аналогично, по разным причинам но должно все (если не менять настройки).


 
Anatoly Podgoretsky ©   (2006-11-16 21:56) [11]

> Kolan  (16.11.2006 21:49:09)  [9]

> Да, у меня не SQL server, а MSDE.

Это полноценный MS SQL server предназначенный для персонального использования.
А сейчас ты привел уже другую строку подключения.


 
sniknik ©   (2006-11-16 21:59) [12]

> Как так вышло?
при подключении подставились все умолчания.

см. [2], минимум что нужно, да и то базу можно тоже убрать тогда по умолчанию будет master а выбирать свою можно уже потом sql-ем "USE xxxx"


 
Kolan ©   (2006-11-16 22:07) [13]

> sniknik ©   (16.11.06 21:54)

Понял.

FADOCOnnection.ConnectionString := PromptDataSource(0, "");
Вроде это то, что надо. А что такое ParentHandle или правильные ли я передал параметры?


 
sniknik ©   (2006-11-16 22:23) [14]

> А что такое ParentHandle
хендл окна родителя для вновь открывшегося, можно конечно и десктоп... но лучше поставить своего, не будет "провалов" за главное окно при некоторых ситуациях. (это не только для этого это любого окна касается, с диалоговыми случается часто при таком стиле (есть у нас один любитель Windows.MessageBox(0, ....) писать... убил бы гада, или уволил, жаль не в моей власти, столько неприятных ситуаций изза этого было))


 
Kolan ©   (2006-11-16 22:48) [15]

> но лучше поставить своего

Да, понял, только класс, в котором это все творится не знает ничего об окнах. Добавить параметр в конструктор что-ли?



Страницы: 1 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.043 c
1-1166445693
SergeD
2006-12-18 15:41
2007.02.11
Программная смена картинки в


2-1169664755
Kolan
2007-01-24 21:52
2007.02.11
Управление видимостью/доступностью контролов.


15-1169322834
DMB1
2007-01-20 22:53
2007.02.11
Чат по протоколу TCP/IP клиент и сервер


15-1169061200
AntiUser
2007-01-17 22:13
2007.02.11
Множественные уязвимости в продуктах Oracle


2-1169890385
tu_21
2007-01-27 12:33
2007.02.11
Запись в Access