Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
Чайник   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.01 c
3-56492
Vemer
2003-10-26 11:01
2003.11.17
(Не)Работа TQRExpr


14-56897
Сатир
2003-10-25 18:14
2003.11.17
Воспроизведение анимированных gif-ов на делфийской форме


1-56658
Sectey
2003-11-05 10:24
2003.11.17
Компонент в рунтайме


1-56611
kanych
2003-11-05 04:20
2003.11.17
Добраться до объекта реализующего интерфейс


3-56474
mrl
2003-10-28 18:33
2003.11.17
DataModule, Form и dll





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский