Главная страница
    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.48 MB
Время: 0.067 c
8-1149966429
avlan
2006-06-10 23:07
2007.02.11
Внешний редактор изображений


15-1169457248
TIF
2007-01-22 12:14
2007.02.11
SMS - программно


1-1166135792
conless
2006-12-15 01:36
2007.02.11
ScrollBox, помогите разобраться!


2-1169532094
M1sT
2007-01-23 09:01
2007.02.11
Сервер InterBase...


15-1169220677
pavelaver
2007-01-19 18:31
2007.02.11
как решить задачу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский