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

Вниз

Первые шаги при создании клиент-серверного приложения   Найти похожие ветки 

 
Чайник   (2003-10-29 12:52) [0]

После соединения с БД как передать параметры соединения дальше в проект? Почему если размещаешь на форме объект Query то снова появляется диалог для присоединения к БД, Как от него избавиться?


 
Reindeer Moss Eater ©   (2003-10-29 12:54) [1]

Используй TDatabase.

Иначе будут открываться столько коннектов к серверу, сколько датасетов используется


 
Vlad ©   (2003-10-29 12:55) [2]

Создаешь один объект TDataBase, к которому подключаешь множество TQuery. При этом у TDataBase в параметрах пропиши логин и пароль, а затем поставь LoginPrompt=false;


 
Чайник   (2003-10-29 13:12) [3]

Это уже все сделано. После ввода имени и пароля при удачном соединении загружается следующая форма проекта, где подключаются запросы. Как передать в эту форму это успешное соединение


 
Vlad ©   (2003-10-29 13:15) [4]

Зачем передавать ?
в uses модуль с DataBase добавить - никак ?


 
чайник   (2003-10-29 13:25) [5]

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


 
Anatoly Podgoretsky ©   (2003-10-29 13:35) [6]

Именно так, решил дайка я попрограммирую в Дельфи, сел и начал сраз писать, и сразу клиент-сервер.


 
чайник   (2003-10-29 13:37) [7]

для учебы чем сложнее тем лучше, испытано на себе...Совет пожалуйста...благодарю


 
DenK_vrtz ©   (2003-10-29 13:37) [8]

Кстати, Vlad © (29.10.03 13:15) [4], можно и не подключать в uses имя модуля с DataBase-компонентом. Все равно он будет виден у query в списке свойства DatabaseName.

Чайник, а книги потом читать будем или ну их?


 
Vlad ©   (2003-10-29 13:40) [9]

Допустим DataBase у тебя находится в модуле Unit1, а Query находится в модуле Unit2.
Тогда в модуле Unit2 пропиши:

implementation
uses
Unit1
После чего в твоем Query в свойстве DataBase укажи оную (она будет в выпадающем списке)

P.S. Ты бы книжки хоть почитал чтоли...

>DenK_vrtz © (29.10.03 13:37) [8]
Разве ? Каким образом ?


 
DenK_vrtz ©   (2003-10-29 13:41) [10]

Vlad ©, а ты попробуй! :)


 
stud ©   (2003-10-29 13:44) [11]


> DenK_vrtz © (29.10.03 13:41) [10]

а если надо например в unit2 нужно вызвать database.starttrnsaction?)) лучше подключить.


 
Vlad ©   (2003-10-29 13:44) [12]

>DenK_vrtz © (29.10.03 13:41) [10]
Пробую. Не видно :(


 
чайник   (2003-10-29 13:44) [13]

книжки то читаем, а по полочкам еще не разложилось.Создал форму для ввода пароля. На MSSQL создал базу, заграничил права доступа. Когда помещаю Query в списке свойств имя базы отображается, его и выбираю, заполняю SQL и активизирую и вот тут -то снова и появляется это надоедливое окошечко. Хотя Database.connected=true, вот в чем проблема. А программа сама небольшая так баловство, но нужно на ней учиться технологии клиент -сервер.


 
DenK_vrtz ©   (2003-10-29 13:50) [14]

stud ©, естесственно лучше подключить! :)
Vlad ©, серьезно не видит?! Не может быть!!! Он его не только видит, но при Active=true у Query, у Database свойство Connected автоматом становится = true


 
stud ©   (2003-10-29 13:51) [15]

он видит не database а его алиас


 
чайник   (2003-10-29 13:55) [16]

спасибо, это все получилось.Второй вопрос: описываю переменную public, в которую заносится в первой форме имя пользователя, а дальше в другой форме она почему-то пустая..


 
Anatoly Podgoretsky ©   (2003-10-29 14:03) [17]

В другой форме она другая


 
чайник   (2003-10-29 14:06) [18]

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


 
mOOx_ ©   (2003-10-29 14:07) [19]

А ты вообще в курсе, что public - это зарезервированное слово в делфе?!! Лучше для твоего же здоровья переменные так не обзывать :)


 
чайник   (2003-10-29 14:15) [20]

я имею ввиду тип переменной глобальная, описывается она в теле проекта модуля.Тогда этот вопрос задам по другому - как передать значения параметра из одной формы в другую?Спасибо.


 
Vlad ©   (2003-10-29 14:23) [21]

>DenK_vrtz © (29.10.03 13:50) [14]
Я понял о чем речь. Ты имеешь ввиду, то что виден список BDE-шных алиасов. Это да. Но сам компонент, TDataBase, расположенный на другой форме он не видит.


 
mOOx_ ©   (2003-10-29 14:24) [22]

Если у тебя объявление такое:
TForm1 = class(TForm)
....
public
Param: Variant;
end;

То тогда обращение к этой переменной просто
Form1.Param


 
Anatoly Podgoretsky ©   (2003-10-29 14:25) [23]

чайник (29.10.03 14:06) [18]
Все можно, только надо явно указывать какую хочешь, только никак не могу связать public c переменными, это относится к классам.


 
Anatoly Podgoretsky ©   (2003-10-29 14:26) [24]

mOOx_ © (29.10.03 14:24) [22]
Это не переменная, а поле класса, он же спрашивает про переменную, но почему то использует слово public


 
чайник   (2003-10-29 14:34) [25]

делаю так
TForm1 = class(TForm)
....
public
usrname: string;
end;
затем вызываю в другой форме как
per:=form1.usrname;
ругается, что form1 необъявленная переменная.
вот..


 
Vlad ©   (2003-10-29 14:38) [26]


> чайник (29.10.03 14:34) [25]

нда....
ты про uses так ничего и не понял.


 
mOOx_ ©   (2003-10-29 14:38) [27]

*?*"%(:%:"*;):"№(*?:.
Это все, что я могу сказать :).
Подключи модуль, в котором объявлен TForm1.
2 Anatoly Podgoretsky © (29.10.03 14:26) [24]:
Это я все знаю, тут нового ничего нет, но чайникам так понятнее.


 
чайник   (2003-10-29 14:47) [28]

спасибо всем за участие и помощь!


 
Vlad ©   (2003-10-29 14:49) [29]


> чайник (29.10.03 14:47) [28]
> спасибо всем за участие и помощь!

Пивка бы хоть поставил... :)


 
Anatoly Podgoretsky ©   (2003-10-29 14:52) [30]

чайник (29.10.03 14:34) [25]
form1 надо обхявить в том же модуле или сделать известным через USES


 
bushmen ©   (2003-10-29 14:54) [31]

>чайник

Теперь тебя можно перевести в кофейники :)


 
Vlad ©   (2003-10-29 14:55) [32]

>bushmen © (29.10.03 14:54) [31]
Нет, в кофейники еще рано.
Будет чайником Tefal Gold


 
DenK_vrtz ©   (2003-10-29 14:56) [33]

Vlad ©, извини брат, не так обяснил :)


 
чайник   (2003-10-29 15:02) [34]

я бы рад поставить...Представьте себе огромную бочару, глядишь с вашей помощью стану профи. Очередной вопрос: Загружается главное меню, как сделать доступным и недоступным пункты в зависимости от имени пользователя. Те пункты, которые можно всем объявлены в свойстве enabled=true, остальные для них false. администратору нужно открыть все. Делаю типа menu1.item[1].enabled=true, но что-то не становятся доступным. А вообще как лучше прописывать пользователей, создать таблицу на сервере с именами или еще есть какой способ? Благодарю


 
DenK_vrtz ©   (2003-10-29 15:05) [35]

Про что хоть систему пишем? :)


 
mOOx_ ©   (2003-10-29 15:09) [36]

А мне так кажется, что одна и та же апликуха для пользователя и админитсритора - это совсем как-то хренова :). Пиши разные, глядишь и без енаблитов обойдешься.


 
Vlad ©   (2003-10-29 15:12) [37]


> чайник (29.10.03 15:02) [34]

Я бы сделал ActionList со списком всех функций. Изначально все они Enabled=false. Когда происходит инициализация пользователя, пробегаешь по этому списку и открываешь доступные ему функции.


 
Val ©   (2003-10-29 15:13) [38]

>Anatoly Podgoretsky © (29.10.03 14:26) [24]
синтаксис Foxa:
чайник (29.10.03 14:06) [18]


 
чайник   (2003-10-29 15:26) [39]

система будет обрабатывать выдачу кредитов клиентам, пользователей всего пять человек, один все вносит, другие только смотрят.Вообще -то это идея разделить на два модуля...Еще один вопрос:-в первой форме модуля запрашиваю пароль и пользователя.В TDatabase loginprompt=false, в событии ONlogin этого компонента записываю код для занесения имени пользователя и пароля.
procedure Tparol.Dat1Login(Database: TDatabase; LoginParams: TStrings);
begin
usrname:=parol.Edit1.text;
usrpwd:=parol.edit2.text;
Loginparams.add("User Name="+usrname);
Loginparams.add("password="+usrpwd);
end;
Нужно ли в свойство params компонента Tdatabase заносить первоначальные данные в User name и password?
Я затем делаю так, что по кнопочке OK загружаю дальше другие формы, а если пароль или пользователь неверен не могу отловить и обойти этот момент.извините, если вопрос совсем уже тупой..Как это оформить кодом.Спасибо.


 
bushmen ©   (2003-10-29 16:16) [40]

А где у тебя открывается соединение Database ?

try
Database1.connected:= true;
except
//тут обрабатываешь ошибку
end;



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

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

Наверх




Память: 0.56 MB
Время: 0.029 c
14-56817
horus
2003-10-24 17:25
2003.11.17
Как Вы относитесь к идее создания рассылки?


1-56737
Aleksandr
2003-11-06 18:12
2003.11.17
Как отскроллировать ListBox в конец его списка


1-56700
_FreeMan_
2003-11-08 00:50
2003.11.17
Как запустить почтового клиента?


8-56775
Николай В.
2003-07-22 15:20
2003.11.17
OpenGL


14-56839
Thor
2003-10-27 16:49
2003.11.17
APC и иже с ними.