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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.01.2010, 04:42   #1
KaimNotark
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 23
По умолчанию запись из DBEdit в таблицу MySQL

Здравствуйте, люди добрые ))

Дело такое, имеется форма (Делфи 7).
На ней кнопка и компонент DBEdit (все настроено и исправно работает).
Также есть БД MySQL в ней табличка.

Вот что хочу реализовать: при нажатии на кнопку, создается
в таблице новая запись, в поле которой заносится значение
из DBEdit.

Перерыл кучу инфы, накопал следующее (привожу код):


// ------- НАЖАЛИ НА КНОПКУ --------

Код:
procedure TF_WindowD1.But_PrinZakazClick(Sender: TObject);
begin

   DataModuleForm.ZTable_ZakazFin.Insert;
   DataModuleForm.ZTable_ZakazFin.Post;
end;
Данный код делает следующее:
Создается новая запись. Но значение из поля DBEdit сохраняется
в первой записи, а не в новой. Следовательно нужно указать проге,
в какой записи сохранить значение.

Вопрос: как это сделать?

Заранее спасибо

З.Ы.
В литературе приводится множество примеров, как внести
данные или изменить их в таблице БД. Однако везде
используют DBGreed, в которой сперва выделяют нужную запись,
а уж потом вносять в нее изменения.

В моем же случае, таблицу не видно. Т.о. нужно программно
указать ту или иную запись. Как?

У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор

Последний раз редактировалось mihali4; 19.01.2010 в 11:59.
KaimNotark вне форума
Старый 19.01.2010, 12:03   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Код:
tmp:=DBEdit1.Text;   
DataModuleForm.ZTable_ZakazFin.Insert;
//Все... В DBEdit1.Text стало пусто...
DataModuleForm.ZTable_ZakazFin.FieldByName('MYFIELD').AsString:=tmp;
DataModuleForm.ZTable_ZakazFin.Post;
mihali4 вне форума
Старый 20.01.2010, 02:55   #3
KaimNotark
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 23
По умолчанию

Спасибо за код, сейчас изучим....
Замечание принимается.
Исправлюсь

Анализирую код вслух...
Код:
tmp:=DBEdit1.Text;  // вот, ты запомнил значение поля ДБЕдит в переменной тмр... 
DataModuleForm.ZTable_ZakazFin.Insert; // вставили новую запись в таблицу..
//Все... В DBEdit1.Text стало пусто... (то есть фокус автоматически перешел с первой записи на новую и ДБЕдит отображает пустое поле?)
DataModuleForm.ZTable_ZakazFin.FieldByName('MYFIELD').AsString:=tmp; // теперь ты указываешь поле в выделенной записи, 
//затем заносишь в него значение переменной тмр.
DataModuleForm.ZTable_ZakazFin.Post;// ну и сохраняешь в таблице изменения
Тааак...
Первый вывод, который приходит в голову - компонент ДБЕдит можно заменить простым Едит.
Второе, уточняю правильно ли я понял - строка
Код:
DataModuleForm.ZTable_ZakazFin.FieldByName('MYFIELD').
указывает именно поле в записи, но не запись?

Если это так, то каким образом можно указать нужную мне запись?
К примеру, стоит задача считать/записать значение заданного поля в заданной записи.

Сейчас вставлю код в прогу, посмотрю как работает

Вставил код в прогу, заменив ДБЕдит простым Едит. РАБОТАЕТ !!!!!!

З.Ы.
Чуть выше заданный вопрос остается в силе.

Да, и еще...
Совет нужен.
Требуется, чтобы в DBGreed показания обновлялись переодически самостоятельно (сейчас использую кнопку "обновить").
Вот не могу решиться какой из вариантов предпочесть:
1. использовать таймер и обновлять таблицу раз в секунду
2. использовать какое-либо событие (какое???)

Может подскажите , исходя из своего личного опыта, что предпочесть...

Последний раз редактировалось Stilet; 20.01.2010 в 08:10.
KaimNotark вне форума
Старый 20.01.2010, 13:02   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Когда выполнена операция вставки новой записи, курсор становится на эту запись, т.е. она однозначно определена. И вставка значения происходит в поле той записи, на которой стоит курсор.
Если нужно изменить значение поля другой записи, ищем ее при помощи Locate, затем переводим в режим редактирования и изменяем значение поля.

Событие - DataModuleForm.ZTable_ZakazFin.Afte rPost.
mihali4 вне форума
Старый 22.01.2010, 07:26   #5
KaimNotark
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 23
По умолчанию

C Locate разобрался, с полем тоже. А как перевести в режим редактирования?
А то делфи ругается )))
KaimNotark вне форума
Старый 22.01.2010, 08:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А как перевести в режим редактирования?
ZTable_ZakazFin.Edit;
I'm learning to live...
Stilet вне форума
Старый 22.01.2010, 19:00   #7
KaimNotark
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 23
По умолчанию

Спасибо за ответ.

Вот я вошел в режим редактирования, изменил значение поля в записи.

Нужно ли мне как-либо ВЫходить из режима редактирования?
KaimNotark вне форума
Старый 22.01.2010, 19:36   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

При фиксации изменений и произойдет выход из режима редактирования.
Настоятельно рекомендую открыть первую тему этого раздела и скачать себе что-нибудь для начинающих.
Тему закрываю. Тут не ликбез.
mihali4 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись из Delphi в БД MySQL через DirectMysqlObjects Demien БД в Delphi 1 21.01.2010 18:53
Запись данных в таблицу MySQL, расположенную на удалённом сервере) tigr1991 БД в Delphi 0 07.01.2010 00:34
Как создать таблицу с 3 уникальными колонками в MySQL? motorway SQL, базы данных 1 06.07.2009 12:48
Запись из формы в таблицу??? DEZuv Microsoft Office Access 2 06.04.2009 10:15