Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Delphi БД Выбор технологии БД Всем доброго времени суток! Есть у меня задача создать программу для получения (DDE, старым дедовским способом, и/или HTTP), обработки(форматирования, структурирования), анализа(ну очень много всяких фич) и представления в удобоваримом виде информации. Решено программное ядро делать в delphi. Ранее мои изыскания не требовали создания крупных баз данных, поэтому довольствовался ВДЕ для создания... https://www.cyberforum.ru/ delphi-database/ thread1365482.html Связь программы с бд и запись новых данных в таблицу через форму Delphi БД
помогите пожалуйста. не получается организовать запись через форму. у программы 2 функции основных пока что: запись и редактирование. редактирование работает отлично, но запись не работает. точнее компонент DBLookupComboBox подводит.При выборе создания новой записи все поля выдают должное значение, а поля сделанные с помощью этого компонента почему-то пустые. Саму программу я прикрепил архивом,...
Delphi БД Клиент-серверное приложение Всем привет сразу о главном перехожу к обучению клиент-серверный программ в частности Баз-данных, незнаю с чего начать разработку буду признателен если кто подскажет с какими компонентами работать какую СУБД использовать и тд, заранее спасибо))) https://www.cyberforum.ru/ delphi-database/ thread1365306.html Delphi БД Регистрация в программе, используя Access Всем привет, значит хочу осуществить следующую вещь: при регистрации установить так скажем проверку на совпадение Логина , если он уже есть базе вывести сообщение что Логин занят в противном случае зарегистрировать пользователя. Пожалуйста подскажите как можно реализовать , заранее спасибо)) https://www.cyberforum.ru/ delphi-database/ thread1365130.html
Настройка фильтрации и поиска Delphi БД
Помогите пожалуйста, надо настроить настройки поиска и фильтрации...
Delphi БД FireBird Delphi BLOB текст не выводится https://www.cyberforum.ru/ delphi-database/ thread1364983.html
По затее BLOB должен получать и выдавать текст в TMemo. Таблица BD: CREATE TABLE MES ( ID_OBJ BIGINT NOT NULL, ID_FROM Integer NOT NULL, ID_TO Integer, MES_INDEX Integer NOT NULL, MES_TYPE Integer NOT NULL, MES_TEXT Blob SUB_TYPE 1 SEGMENT SIZE 40,
Delphi БД В поле таблицы access записывается не более 20 символов Добрый день! Не уверен, что создал тему в нужном разделе, потому что не пойму в чем косяк - в делфи или акцесе. Заканчивая проект, ВНЕЗАПНО, обнаружил что в моей БД есть таблица, в поле которой не получается записать более 20 символов. Просто обрезает текст. Опытным путем(в акцесе добавил пару слов в это же самое поле), было установлено что и прочитать из этой таблицы текст длинной более 20... https://www.cyberforum.ru/ delphi-database/ thread1364966.html Delphi БД не могу разобраться с запросом суммы
Вечер добрый не могу разобраться с query, мне надо сделать что бы по нажатию кнопки в окне рядом я предполагаю dbgrid выдавалась сумма заказа, я создал query1 в sql, поюзал по интернету и нашел пример запроса в sql выглядит он так Select SUM(стоимость) from Заказ where номер_заказа=:Zparесли первые две строчки я хоть как то понимаю, то конец третьей строчки мне не ясен, не могли бы мне...
Delphi БД Ошибка: index is out of date Заранее извиняюсь если вы меня не поймете, проблема такая: в Database Desktop есть таблица, для нее указаны вторичные индекса для сортировки, в Delphi когда запускаю данную таблицу происходят странные вещи, если сначала добавить новую запись а потом попробовать отсортировать выдает ошибку index is out of date, потом обновляю индексы( глупо и бессмысленно вручную), сортирую таблицу, все нормально,... https://www.cyberforum.ru/ delphi-database/ thread1364616.html Delphi БД Связывание таблиц. Не укладывается в голове Решение задачи не могу изложить даже карандашом на бумаге. А задача тривиальна: Есть список строительных объектов (к примеру штук 10), на которых работали 4 работника На каждом объекте работали не все сразу работники, а как попало, кто с кем. Как к одному строительному объекту привязать несколько работников? Как к одному работнику привязать несколько объектов на которых он работал? https://www.cyberforum.ru/ delphi-database/ thread1364166.html
Фильтрация для составного поля Delphi БД
Здравствуйте, можете помочь сделать фильтрацию поля main numbers через ComboBox,а то у меня выводит ошибку,да и с двумя полями у меня не получилось,
Delphi БД Добавить запись в БД Здравствуйте, подскажите как реализовать такую вещь, на форме есть 2 DBGrid, есть фильтр по первой таблице. Нужно добавить в выделенную строку запись(т.е только в одни из столбцов, остальные заполнены), НО есть еще одна таблица, которая на форме не отображается, в нее тоже нужно добавить запись(в несколько столбцов). Все 3 таблицы связаны. https://www.cyberforum.ru/ delphi-database/ thread1364088.html
9 / 9 / 4
Регистрация: 11.07.2012
Сообщений: 200
31.08.2015, 07:01  [ТС] 0

Ликбез по DataSnap - Delphi БД - Ответ 8025100

31.08.2015, 07:01. Показов 22387. Ответов 30
Метки (Все метки)

Ответ

И тебе привет,

У меня ещё такой вопрос - ты когда методы новые создаешь, ты каждый раз под них на стороне клиента создаешь sqlServerMethod
В том то и дело - если через методы действовать то конструкция получается предельно жесткая.
Само действие выполняет метод на сервере, в случае запроса - это запрос с параметрами, например


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    Procedure TServerMethods1.ClientUpdate(EMPLOYES_KEY,EMP_MANAGER_KEY,EMP_ISP_KEY :Integer;
                                       EMP_SURNAME,EMP_NAME,EMP_PATRON,EMP_PROF,
                                       EMP_POL,EMP_BITHDAY,EMP_RASA,EMP_TEL,EMP_EMAIL,
                                       EMP_ADRES,EMP_SOBESED_DATA,EMP_SOBESED_VAC,
                                       EMP_UNIFORMA,EMP_FOTO_F: String);
begin
 
  with SQLQuery1 do
   begin
     Close;
     SQL.Clear;
     SQL.Add('UPDATE EMPLOYES SET');
     SQL.Add('EMP_MANAGER_KEY = (:EMP_MANAGER_KEY),EMP_ISP_KEY = (:EMP_ISP_KEY),');
     SQL.Add('EMP_SURNAME = (:EMP_SURNAME),EMP_NAME = (:EMP_NAME),EMP_PATRON = (:EMP_PATRON),');
     SQL.Add('EMP_PROF = (:EMP_PROF),EMP_POL = (:EMP_POL),EMP_BITHDAY = (:EMP_BITHDAY),');
     SQL.Add('EMP_RASA = (:EMP_RASA),EMP_TEL = (:EMP_TEL),EMP_EMAIL = (:EMP_EMAIL),');
     SQL.Add('EMP_ADRES = (:EMP_ADRES),EMP_SOBESED_DATA = (:EMP_SOBESED_DATA),EMP_SOBESED_VAC = (:EMP_SOBESED_VAC),');
     SQL.Add('EMP_UNIFORMA = (:EMP_UNIFORMA),EMP_FOTO_F = (:EMP_FOTO_F) ');
     SQL.Add('WHERE EMPLOYES_KEY =(:EMPLOYES_KEY)');
     Params[0].Value:= EMP_MANAGER_KEY;
     Params[1].Value:= EMP_ISP_KEY;
     Params[2].Value:= EMP_SURNAME;
     Params[3].Value:= EMP_NAME;
     Params[4].Value:= EMP_PATRON;
     Params[5].Value:= EMP_PROF;
     Params[6].Value:= EMP_POL;
     Params[7].Value:= EMP_BITHDAY;
     Params[8].Value:= EMP_RASA;
     Params[9].Value:= EMP_TEL;
     Params[10].Value:= EMP_EMAIL;
     Params[11].Value:= EMP_ADRES;
     Params[12].Value:= EMP_SOBESED_DATA;
     Params[13].Value:= EMP_SOBESED_VAC;
     Params[14].Value:= EMP_UNIFORMA;
     Params[15].Value:= EMP_FOTO_F;
     Params[16].Value:= EMPLOYES_KEY;
     ExecSQL();
   end;
 
end;

на стороне клиента мы обращаемся к этому методу, используя компонент который в дизайнере жестко
привязали к этому методу - вообщем дико не удобно стоит чуть поменять запрос - это новый метод и новый
компонент (возможно
1 - попробовать программно подключать\отключать компонент к разным методам
2 - попробовать динамически создавать\ удалять компонент (как предложил ты)
но это все равно не решит вопроса, как обновить данные на клиенте после изменений не рвя подключение

По этим причинам я (как наверное и 99% остальных) запросы к базе делаю не через методы, а методы
использую но для других задач.

Также попробовал твой способ слать запросы прямиком из клиента из Clientdataset, но получил ошибку, может что-то не так делаю...
Да все так, только надо помнить, что:

На стороне сервера у компонента datasetprovider должно быть включено свойство poAllowCommandtText в опциях
на сервере:

sqldataset (свойство commandtype - ctqwery) - sqlqwery - datasetprovider (poAllowCommandtTex - true)

на клиенте

clientdateset( provider name - datasetprovider сервера, remoteserver - dsproviderconnection) - datasource

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

Также подскажи - делал ли ты личный кабинет по данной технологии? Если да, то как решал вопрос с авторизацией? Я, насколько понял, в DataSnap есть более менее готовое решение? Или я ошибаюсь?
Готовое решение - наверняка есть, вот только мне о нем никто не рассказал все что я знаю это

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
       //устанавливаем параметры подключения
      with DataModule2.SQLConnection1 do
      begin
      Params.Clear;
      Params.Values['DriverUnit']:= 'DBXDataSnap';
      Params.Values['CommunicationProtocol']:= ComboBoxSetProtocol.Text;
      Params.Values['HostName']:= ComboBoxSetIP.Text;
      Params.Values['Port']:= ComboBoxSetPort.Text;
      Params.Values['Filters'] :='{}//';  //набор фильтров
      //Params.Values['DatasnapContext']:= 'datasnap/';
      //Params.Values['DSAuthUser']:=ELogin.Text;  //имя пользователя
      //Params.Values['DSAuthPassword']:=EPass.Text;  //пароль
      Open; //пробуем подключиться
      end;
если у sqlconnection свойство loginprompt сделать true то вылазит "готовое решение" но мне хотелось бы
как то это все в своем окошке со своими параметрами, дизайном и так далее - сделать

Может я поступил не правильно ( не считаю себя пока настоящим программистом - максимум любитель)
но я сделал так


1- нарисовал свою форму авторизации
2- в базе данных в табличке пользователей создал поля логин и пароль (занес данные)

при запуске программа подключается к серверу приложений без всяких паролей но для
пользователя вылазит только окошко авторизации в модальном режиме
дальше дело техники если - пользователь правильно данные ввел то происходит
как бы "подключение" else нажатием на кнопку "выход" он сам рвет соединение

как то так, пока меня устраивает может в будущем найду подводные камни...

Про транзакции - сам дуб дубом - если в двух словах


P/S по web клиенту если что найдешь присылай - реально интересно

Вернуться к обсуждению:
Ликбез по DataSnap Delphi БД
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.08.2015, 07:01
Готовые ответы и решения:

Делегаты. Ликбез
Объясните пожалуйста или посоветуйте какие нибудь источники объясняющие что такое делегаты, как и с...

Ликбез по ООП
Доброго времени суток! Друзья, подскажите, пожалуйста новичку. Чем руководствоваться при создании...

Требуется ЛикБез ^,.,^
Лирическое отступление (кому неинтересно может пропустить): сломался калькулятор, починке он...

Qthread (ликбез)
Задача: 20 детей едят из одной миски, в которой 100 слив, когда ребенок хочет кушать, он берёт из...

30
31.08.2015, 07:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2015, 07:01
Помогаю со студенческими работами здесь

Ликбез по ТВ и apple tv
Привет, у меня несколько вопросов, которые могут показаться глупыми, но если вы развеете мои...

DataSnap и БД
Добрый день! Кто нить работал с DataSnap и БД, Нашел статью как работать и пример, сервер...

Ликбез по стеку прошу
На скрине 1 пример с известного сайта. Из того куда указывает SP заключаю, что в качестве значения...

ликбез по оконным приложениям
Здравствуйте! Вот и подходит дедлайн по курсачу, а проект застрял на стадии "создал папку курсач"...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru