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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.04.2013, 11:38
childeroland childeroland вне форума
Прохожий
 
Регистрация: 15.04.2013
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию При в воде данных dbmemo отображаются данные предыдущей записи

Привет, с Delphi разбираюсь, да и вообще с программированием, совсем недавно, и вот столкнулся с такой проблемой. Подключаюсь через BDE к таблице .dbf, к одному из полей типа memo таблицы привязан компонент dbmemo. Мне нужно через этот компонент ввести данные в blob-поле, но когда я начинаю вводить новые данные в пустой dbmemo в нём тут же появляются данные с предыдущей записи. Опытным путём установил, что данные берутся не из таблицы, так как, если удалить запись, то всё равно данные, которой этой записи принадлежали, отображаются. Делал
Код:
dbmemo1.lines.clear
, при загрузке программы dbmemo отчищается, но начинаешь вводит данные, пресловутая предыдущая запись появляется вновь... Что я делаю не так, и как мне решить эту проблему?
Ответить с цитированием
  #2  
Старый 15.04.2013, 12:50
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

щас кинул себе dbmemo --> datasource --> query
из базы поле MEDIUMTEXT отображает так как надо

а как ты между записями переключаешься? или у тебя одна?)
думаю, чтоб изменения внеслись, нужна кнопочка еще - сохранить введенные данные в бд
и еще про AutoDisplay почитай
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")

Последний раз редактировалось Mrak, 15.04.2013 в 14:18.
Ответить с цитированием
  #3  
Старый 15.04.2013, 14:29
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Каким образом привзяан компонент DbMemo к таблице?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 15.04.2013, 15:19
childeroland childeroland вне форума
Прохожий
 
Регистрация: 15.04.2013
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Mrak
щас кинул себе dbmemo --> datasource --> query
из базы поле MEDIUMTEXT отображает так как надо

а как ты между записями переключаешься? или у тебя одна?)
думаю, чтоб изменения внеслись, нужна кнопочка еще - сохранить введенные данные в бд
и еще про AutoDisplay почитай

AutoDisplay меняет ситуацию ровно на столько, что пока я дважды не щёлкну по полю dbmemo, я не могу ввести свои данные, как только двойной щелчок проходит снова появляется предыдущая строка (строки).
По записям я пока не переключаюсь, на форме есть ещё dbgrid, в который через query выводится всё содержимое таблицы, навигации пока нет, есть ещё dblookupcombo, изменение данных в котором меняет строку запроса в query и, соответственно, меняет содержимое dbgrid... Кнопочка для внесения данных имеется, вопрос, собственно, не в этом, как раз данные я в таблицу заношу, но когда дохожу до dbmemo, стоит только в нём ввести один символ, тут же появляется текст, который я вводил раньше
Ответить с цитированием
  #5  
Старый 15.04.2013, 15:22
childeroland childeroland вне форума
Прохожий
 
Регистрация: 15.04.2013
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Каким образом привзяан компонент DbMemo к таблице?

файл .dbf -> DataSource ->dbMemo, свойство DataField указывает на поле типа memo
Ответить с цитированием
  #6  
Старый 15.04.2013, 15:26
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

а если обычный мемо использовать? вариант?
Код:
memo1.Text:=dm.Query1.FieldByName('field').AsString;
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #7  
Старый 17.04.2013, 07:06
childeroland childeroland вне форума
Прохожий
 
Регистрация: 15.04.2013
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Mrak
а если обычный мемо использовать? вариант?
Код:
memo1.Text:=dm.Query1.FieldByName('field').AsString;

Вообще, конечно, вариант, но, как я писал, практического опыта программирования мало, поэтому я слепо верю всему, что пишут в книжках... Вроде как dbMemo очень хорошо дружит с blob-полями, вот я и решил его использовать. На сколько я понял, то, что происходит у меня - это не типичное поведение компонента, или типичное при условии того, что я что-то делаю неправильно. Рано или поздно всё равно мне придётся с этим столкнуться, вот я и решил разобраться. Со временем... Для экономии последнего попробую таки обычный мемо
Ответить с цитированием
  #8  
Старый 17.04.2013, 07:11
childeroland childeroland вне форума
Прохожий
 
Регистрация: 15.04.2013
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Есть у меня мысль, что туда попадают данные с текущей записи в таблице, т.е., как раз последней введённой, ведь если после выхода из программы и последующего её запуска ситуация повторяется, должна же эта информация откуда-то браться. Правда, я удалял записи в database desktop и делал упаковку таблицы, по идее этих записей там быть не должно... Ещё интересный факт, сама проблема возникает только при самом первом вводе данных при появлении формы, удаляешь старый текст, вводишь новый, кнопочкой записываешь, и дальше уже ситуация не повторяется... пока заново не запустишь программу
Ответить с цитированием
  #9  
Старый 18.04.2013, 11:22
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Что вас смущает?
так и должно быть
dbmemo отображает поле таблицы к которой привязано
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #10  
Старый 29.04.2013, 12:51
childeroland childeroland вне форума
Прохожий
 
Регистрация: 15.04.2013
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Mrak
Что вас смущает?
так и должно быть
dbmemo отображает поле таблицы к которой привязано

Смущает меня то, что при запуске программы dbmemo ничего не отображает, а когда я начинаю писать в нём, тогда и появляются лишние буковки. Вообще проблему пока отложил, да и использовать действительно буду лучше обычный мемо
Ответить с цитированием
  #11  
Старый 29.04.2013, 13:25
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от childeroland
Делал
Код:
dbmemo1.lines.clear
, при загрузке программы dbmemo отчищается, но начинаешь вводит данные, пресловутая предыдущая запись появляется вновь... Что я делаю не так, и как мне решить эту проблему?

А если перед тем как вводить данные сделать
Код:
Table.Insert;
?
ну или (ADOTable или что там у вас.)
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #12  
Старый 29.04.2013, 14:42
childeroland childeroland вне форума
Прохожий
 
Регистрация: 15.04.2013
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Black Raider
А если перед тем как вводить данные сделать
Код:
Table.Insert;
?
ну или (ADOTable или что там у вас.)
Код:
Table.Insert
... Интересно, не пробовал, метод Insert вызываю при нажатии на кнопку [Записать], с соответствующим обработчиком... Обязательно попробую, спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter