Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2018, 22:12   #1
Querto
Пользователь
 
Регистрация: 22.10.2018
Сообщений: 15
По умолчанию Lazarus+Access сохранение данных

Прочитал много инфы в интернете, не нашел нужного решения. Подключаюсь через ODBCConnection к бд access . данные выводятся правильно( все на русском языке ) .Когда пытаюсь изменить данные ( через DBedit ( поля соединены через св-ва DataSourсe и DataField)) они изменяются только в самой программе, а в базе нет.Как сделать , что бы они сохранялись и в базу?
Querto вне форума Ответить с цитированием
Старый 23.10.2018, 11:13   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

1. изменять данные "напрямую" в БД путем SQL запросов изменения данных
Код:
qry2.SQL.Text:='UPDATE t set ... ';
qry2.ExecSQL;
и потом "перечитывать" набор данных(НД) отображения.

2. "вызывать" отправку изменений НД в БД
Код:
qr1.Post;
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 23.10.2018, 15:34   #3
Querto
Пользователь
 
Регистрация: 22.10.2018
Сообщений: 15
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
1. изменять данные "напрямую" в БД путем SQL запросов изменения данных
Код:
qry2.SQL.Text:='UPDATE t set ... ';
qry2.ExecSQL;
и потом "перечитывать" набор данных(НД) отображения.

2. "вызывать" отправку изменений НД в БД
Код:
qr1.Post;
Можно поподробней? Или ссылку на учебник.
Есть база test.accdb , таблица tovars с полями name , id , price и sell. В lazarus есть поле DBedit , оно соеденено с DBgrid , при его изменении и нажатии кнопки изменения просходят только в Lazarus. Вот код кнопки.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if form1.SQLQuery1.Modified then
  form1.SQLQuery1.post;
 end;
Querto вне форума Ответить с цитированием
Старый 23.10.2018, 16:23   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Querto Посмотреть сообщение
Можно поподробней? Или ссылку на учебник.
так, первое, что попалось под руку - http://devdelphi.ru/?p=30
и http://www.sql.ru/forum/1151798/grid...redaktirovanie

но, по сути, у Вас же SQL запрос?
ещё, наверное, из из разных таблиц?
Почему Вы решили, что он сам будет обновлять данные в таблице?
да и вообще, помоему Query не умеет сам обновлять данные.

разве не надежнее сделать Update отдельным запросом?

Последний раз редактировалось Serge_Bliznykov; 23.10.2018 в 16:25.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.10.2018, 17:08   #5
Querto
Пользователь
 
Регистрация: 22.10.2018
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
http://devdelphi.ru/?p=30
по этому все понятно
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
http://www.sql.ru/forum/1151798/grid...redaktirovanie
по этому вообще ничего не понятно.

http://www.interface.ru/home.asp?artId=6448
почитал возможные запросы SQL с этого сайта, попробовал сделать. Вышла вот такая ошибка
12.jpg
Querto вне форума Ответить с цитированием
Старый 23.10.2018, 18:10   #6
Querto
Пользователь
 
Регистрация: 22.10.2018
Сообщений: 15
По умолчанию

Еще почитал на сайтах инфу. Получилось добавить в бд какие-то символы (+#39+name+#39+). Как я не пытался их изменить ( и в поле DBEdit , и в DBgride , и с edit1.text брал и переносил в поле ) но не получается. На лазарусе выглядит так :
12.jpg
Querto вне форума Ответить с цитированием
Старый 23.10.2018, 18:24   #7
Querto
Пользователь
 
Регистрация: 22.10.2018
Сообщений: 15
По умолчанию

С символами в бд разобрался, это запрос, который я посылал.
Как изменить отображение в DBgrid-е ?
Querto вне форума Ответить с цитированием
Старый 23.10.2018, 19:09   #8
Querto
Пользователь
 
Регистрация: 22.10.2018
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Querto Посмотреть сообщение
ить отображение в DBgrid-е ?
есть идеи? последний рывок перед долгой и нудной работой с многочисленными запросами)
Querto вне форума Ответить с цитированием
Старый 23.10.2018, 19:53   #9
Querto
Пользователь
 
Регистрация: 22.10.2018
Сообщений: 15
По умолчанию

разобрался вот таким кодом
Код:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Assigned(Column) then
  begin
   DBGrid1.Canvas.FillRect(Rect);
   DBGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top, ' '+Column.Field.AsString);
  end;
end;
Спасибо за учебники, подсказали в какую сторону копать. Можно закрывать.

Последний раз редактировалось Querto; 23.10.2018 в 20:47.
Querto вне форума Ответить с цитированием
Старый 24.10.2018, 17:32   #10
Querto
Пользователь
 
Регистрация: 22.10.2018
Сообщений: 15
По умолчанию

Сложно в это поверить, но вчера у меня получилось и я забыл сохранить. Сегодня вся инфа вылетела с головы , начал заного копать и в пустую. Подскажите, вот имею такой код
Код:
SQLquery1.SQL.Text:='insert into test1 ( tovars ) values ('+#39+name+#39+')';
 Showmessage(SQLQuery1.SQL.text);
sqlquery1.Post;
sqlquery1.ApplyUpdates(0);
SQLQUERY1.refresh;
командой showmessage(Form1.SQLQuery1.FieldBy Name('name').AsString); он выводит все правильно (Form1), данные в паскаль заносятся. НО В БАЗУ НЕТ. только ненужно громко смеяться :D
Querto вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение в базу данных мониторинг данных с аппарата искусственной вентиляции легких konderson97 Общие вопросы по программированию, компьютерный форум 1 07.03.2018 11:17
Access+Lazarus yulia БД в Delphi 11 13.01.2016 13:53
Сохранение данных в Access fheeda C# (си шарп) 1 21.06.2015 00:46
Сохранение данных из множества файлов в таблицу Access Vladymyrus Microsoft Office Access 1 03.11.2014 15:37
Сохранение данных из Edit в базу данных (не Access) Denis3 БД в Delphi 5 18.03.2013 16:45