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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.12.2011, 18:15
den_d.i. den_d.i. вне форума
Прохожий
 
Регистрация: 28.10.2011
Сообщения: 12
Репутация: 10
По умолчанию редактирование Dbf файла

Добрый день!
Подскажите пожалуйста,как мне лучше сделать?
К нам в организацию присылают файлы .dbf (dbase4),задача состоит в том,чтобы пользователь выбрал файл(который был прислан),затем ввел некоторое значение,например в Edit и автоматом проставились все значения в определенном столбце файла
В принцепи никогда не работал с Dbase
Щас реализовал следующее,выбираю нужный мне dbf файл,он спокойненько отображается в DBgridе,вот теперь встает вопрос как проставить значения быстрее и лучше?
Есть мысля,использовать Query, и через update изменить нужный мне столбец,только синтаксис не очень понятен,т.е. понятно что синтакси
UPDATE таблица
SET столбец=новому значению
WHERE <условие>
но не пойму как правильно написать запрос с dbf файлом,что является таблицей здесь?
Ответить с цитированием
  #2  
Старый 27.12.2011, 10:08
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Сам DBF-файл это и есть таблица. А вот каталог в котором он располагается это типа БД. В вашем случае можно обойтись без SQL и сделать так:
Код:
DBGrid1.DataSource.DataSet.First;
 while not DBGrid1.DataSource.DataSet.Eof
 do begin
    DBGrid1.DataSource.DataSet.Edit;
    DBGrid1.DataSource.DataSet.FieldByName(DBGrid1.SelectedField.FieldName).Value := Edit1.Text;
    DBGrid1.DataSource.DataSet.Post;
    DBGrid1.DataSource.DataSet.Next;
    end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 27.12.2011, 11:37
den_d.i. den_d.i. вне форума
Прохожий
 
Регистрация: 28.10.2011
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Сам DBF-файл это и есть таблица. А вот каталог в котором он располагается это типа БД. В вашем случае можно обойтись без SQL и сделать так:
Код:
DBGrid1.DataSource.DataSet.First;
 while not DBGrid1.DataSource.DataSet.Eof
 do begin
    DBGrid1.DataSource.DataSet.Edit;
    DBGrid1.DataSource.DataSet.FieldByName(DBGrid1.SelectedField.FieldName).Value := Edit1.Text;
    DBGrid1.DataSource.DataSet.Post;
    DBGrid1.DataSource.DataSet.Next;
    end;

ага,согласен с вами,но мне нужно менять определенный столбец dbf файла,а он получается меняет первый
т.е если конечно поместить курсор на то поле которое необходимо править,тогда да,он всё изменяет корректно,о нужно чтобы пользователь по гриду не шарился,а ввел значение в эдит,нажал кнопку,а в нужном поле всё поменялось,как так сделатЬ?

Последний раз редактировалось den_d.i., 27.12.2011 в 11:48.
Ответить с цитированием
  #4  
Старый 27.12.2011, 11:50
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Так укажи вместо DBGrid1.SelectedField.FieldName свое поле в чем проблема?
Код:
DBGrid1.DataSource.DataSet.FieldByName('MyField').Value := Edit1.Text;
__________________
Google в помощь
Ответить с цитированием
  #5  
Старый 27.12.2011, 11:56
den_d.i. den_d.i. вне форума
Прохожий
 
Регистрация: 28.10.2011
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от Ildar-tsr
Так укажи вместо DBGrid1.SelectedField.FieldName свое поле в чем проблема?
Код:
DBGrid1.DataSource.DataSet.FieldByName('MyField').Value := Edit1.Text;


блин....точно,мы же можем указывать конкретное поле,спасибо огромейшее
Ответить с цитированием
  #6  
Старый 27.12.2011, 15:05
den_d.i. den_d.i. вне форума
Прохожий
 
Регистрация: 28.10.2011
Сообщения: 12
Репутация: 10
По умолчанию

Может кто ещё подскажет в таком вопросе?
необходимо также вести лог-файл,например записывать все действия в текстовый документ
Хотят чтобы было:
Когда пользователь открыл прогу
Когда нажал на кнопку(определенную)
Какие изменения были сделаны(т.е. пользователь добавляет в некий столбец новые данные, эти данные должны попасть в лог,можно ли такое сделать или нет?)
также когда закрыл прогу
Ответить с цитированием
  #7  
Старый 29.12.2011, 10:02
den_d.i. den_d.i. вне форума
Прохожий
 
Регистрация: 28.10.2011
Сообщения: 12
Репутация: 10
По умолчанию

Вопрос закрыт!)
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter