Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.03.2012, 17:00
Andrew_MSK Andrew_MSK вне форума
Прохожий
 
Регистрация: 25.11.2011
Сообщения: 28
Репутация: 10
Восклицание записать значение двух полей в третье поле

есть поля
field1, field2, field3
field1 - dbedit1.text - Пушкин
field2 - dbedit2.text- Александр
field3 -dbedit3.text Сергеевич

как сделать чтобы значение field4 - dbedit4.text было Пушкин Александр Сергеевич

использую zeos, dbgrid, mysql

помогите очень нужно!!!!
в делфи новичок, похожую темку находил, но сейчас не могу найти как сделать...
Ответить с цитированием
  #2  
Старый 05.03.2012, 17:06
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
//  Table1.Edit;
  Table1.FieldByName('FIO').AsString:=Table1.FieldByName('F').AsString+' '+
    Table1.FieldByName('I').AsString+' '+
    Table1.FieldByName('O').AsString;
//  Table1.Post;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Andrew_MSK (06.03.2012)
  #3  
Старый 05.03.2012, 17:50
Andrew_MSK Andrew_MSK вне форума
Прохожий
 
Регистрация: 25.11.2011
Сообщения: 28
Репутация: 10
По умолчанию

спасибо
а как поступить с zquery...и если поле dbmemo...
zquery1.SQL.Text:=(' update tbl set field4= (field1.AsString+....
так или как-то иначе...
немного изменю вводные:
необходимо чтобы в поле dbmemo1 автоматом записывались сведения из dbedit1,dbedit2,dbedit3,... данные заполняются посредством zquery1...
причем к примеру если было в поле Пушкин Александр Сергеевич, и в DBEditы забили Толстой Лев Николаевич...то в dbmemo1 имееем Пушкин Александр Сергеевич,Толстой Лев Николаевич, и т.д.
на какое событие dbmemo1 делать вставку новых значений... (без нажатия кнопки)
использую dbmemo1 так как будет много информации....
ОЧЕНЬ НУЖНО!!! спасибо всем за помощь!!!!
если можно помощь кодом delhi!!!

Последний раз редактировалось Andrew_MSK, 05.03.2012 в 17:54.
Ответить с цитированием
  #4  
Старый 05.03.2012, 18:17
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

по идее реальное поле ФИО в таблице вообще не нужно - можно запросом возвращать сумму полей Ф+И+О если потребуется.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 05.03.2012, 20:02
Andrew_MSK Andrew_MSK вне форума
Прохожий
 
Регистрация: 25.11.2011
Сообщения: 28
Репутация: 10
По умолчанию

вообще пример с фио просто так, в реальности будут вводиться даты, когда ходили к клиенту на работы... т.е. необходимо чтобы в одном поле было последнее посещение, а в мемо-поле были все посещения!!!!
конкатенация... случаем не то что мне нужно?
dbmemo работает ли с string?
Ответить с цитированием
  #6  
Старый 05.03.2012, 22:26
Andrew_MSK Andrew_MSK вне форума
Прохожий
 
Регистрация: 25.11.2011
Сообщения: 28
Репутация: 10
По умолчанию

если поле делаю dbedit
то работает, но плохо следующее
Код:
var p,p1,p2,p3 :string;
...dbedit4.change...
dbedit4.text:=p
p1:=dbedit1.text;
p2:=dbedit2.text;
p3:=dbedit3.text;
p:=p1+p2+p3;
данные записывает, но не добавляет к предыддущему значению новую запись;
если делаю
Код:
p:=p+p1+p2+p3;
то ясное дело зацикливает запись(((
1. с dbmemo такое дело вообще не работает
2. зациклив получил в dbedit только порядка 70 символов, а у меня будет больше длина(((
3. ПОМОГИТЕ правда очень нужно!!!! (p.s.:продолжаю изучать сам)
Ответить с цитированием
  #7  
Старый 06.03.2012, 11:38
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

надеюсь что даты, когда ходили к клиенту вообще в отдельной таблице? иначе как записать неограниченное число хождений к клиенту при ограниченном количестве полей в БД...
тогда пример из:
Цитата:
DataSource property (TQuery)
SELECT *
FROM Orders O
WHERE (O.CustNo = :CustNo)
вообще решает проблему.
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 06.03.2012 в 11:41.
Ответить с цитированием
  #8  
Старый 06.03.2012, 12:01
Andrew_MSK Andrew_MSK вне форума
Прохожий
 
Регистрация: 25.11.2011
Сообщения: 28
Репутация: 10
По умолчанию

по правде, нет...
я новичок...
а идея хорошая... даты я вношу в отдельную таблицу...
из нее asstring беру поля... и вношу их в dbmemo, соединяя с ранним dbmemo....
правильно я понял?
нужно чтобы в одном поле была просто дата (последняя), а в другом поле так сказать история дат из поля даты....
спасибо за помощь, но Ваш пример я не понял, можно поподробнее пожалуйста!
Ответить с цитированием
  #9  
Старый 06.03.2012, 12:09
Andrew_MSK Andrew_MSK вне форума
Прохожий
 
Регистрация: 25.11.2011
Сообщения: 28
Репутация: 10
По умолчанию

такой код:
Код:
procedure TForm5.DBMemo3Change(Sender: TObject);
begin
  with DataModule1.ZQuery_rabzona1  do
  begin
  FieldByName('REGLAMENT').AsString:=FieldByName('REGLAM_RAB').AsString+' '+FieldByName('ELECTROMONTER').AsString+' '+FieldByName('INGENER').AsString;
  Post;
  end;
  end;
но мне очень не нравится
Код:
with DataModule1.ZQuery_rabzona1  do

как правильно?
Ответить с цитированием
  #10  
Старый 06.03.2012, 13:03
Andrew_MSK Andrew_MSK вне форума
Прохожий
 
Регистрация: 25.11.2011
Сообщения: 28
Репутация: 10
По умолчанию

немного изменил, попробывал сделать чтобы запись вносилась если значения внесены... не работает...dataset not edit or insert mode...
Код:
procedure TForm5.DBMemo3Change(Sender: TObject);
begin
  if(not DataModule1.ZQuery_rabzona1.FieldByName('REGLAM_RAB').IsNull) and
   (not DataModule1.ZQuery_rabzona1.FieldByName('ELECTROMONTER'  ).IsNull) and
    (not DataModule1.ZQuery_rabzona1.FieldByName('INGENER'  ).IsNull)
  then
  with DataModule1.ZQuery_rabzona1  do
  begin
  edit;
  FieldByName('REGLAMENT').AsString:=FieldByName('REGLAM_RAB').AsString+' '
  +FieldByName('ELECTROMONTER').AsString+' '+FieldByName('INGENER').AsString;
  Post;
  end;
end;

ПОМОГИТЕ ОЧЕНЬ НУЖНА ПОМОЩЬ!
Ответить с цитированием
  #11  
Старый 06.03.2012, 13:51
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

делай это (AsString:=) в событии BeforePost
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Andrew_MSK (06.03.2012)
  #12  
Старый 06.03.2012, 14:31
Andrew_MSK Andrew_MSK вне форума
Прохожий
 
Регистрация: 25.11.2011
Сообщения: 28
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
делай это (AsString:=) в событии BeforePost
что имеется ввиду у dbmemo нет event BeforePost...?
вообще я правильно делаю?
у меня значения в DBGrid выводятся через dataset ZQuery1.sql.text:= select * from tbl

dbedit тоже соединены через dataset

и Zqurery1 уже с дургим sql.text также используется в программе бля поиска и вывода значений в репорт....
Ответить с цитированием
  #13  
Старый 06.03.2012, 14:38
Andrew_MSK Andrew_MSK вне форума
Прохожий
 
Регистрация: 25.11.2011
Сообщения: 28
Репутация: 10
По умолчанию

не знаю будет ли полезно указанное выше дополнение...
Код:
делай это (AsString:=) в событии BeforePost
сделал на event ZQuery_rabzona1BeforePost
Ответить с цитированием
  #14  
Старый 06.03.2012, 14:49
Andrew_MSK Andrew_MSK вне форума
Прохожий
 
Регистрация: 25.11.2011
Сообщения: 28
Репутация: 10
По умолчанию

Цитата:
Сообщение от Andrew_MSK
не знаю будет ли полезно указанное выше дополнение...
Код:
делай это (AsString:=) в событии BeforePost
сделал на event ZQuery_rabzona1BeforePost

спасибо большое заработало!
АВЕ Вам!!!!!

осталось сделать, чтобы данные добавлялись к существующим сведениям...

пока не могу придумать как это сделать!(((
сейчас данные беруться из той же таблицы...
Ответить с цитированием
  #15  
Старый 06.03.2012, 14:52
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

BeforePost это событие у TDataSet, происходит когда данные записываются в набор данных после редактирования - самое то чтобы обновить вычисляемые вручную поля.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Andrew_MSK (06.03.2012)
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter