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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 16:26   #1
Dark_Wolf
 
Регистрация: 01.11.2011
Сообщений: 7
Счастье Редактирование записей в базе "*.mdb"

Зрравствуйте, я создал процэдуру для изменения записей в базе, но почему то она не работает. что в ней не так?
Код:
procedure TpagesDlg.Edit_BD;
var Kli,Den,Num:integer;
    Den_st,Kliyent_st,Number_st,St1,St2,St3:string[100];
Begin
Num:=CB_NA.ItemIndex+1;
Kli:=combobox1.ItemIndex+1;
Den:=combobox3.ItemIndex+1;
Den_st:=stringgrid1.Cells[den,0];
Kliyent_st:=inf[7,Kli]+' '+inf[1,Kli]+' '+inf[2,Kli]+' '+inf[3,Kli];
Number_st:=M_NA[1,num];
{*****************************************}
   while not DBGrid1.DataSource.dataset.eof do
begin
st1:=DBgrid1.DataSource.DataSet.FieldByName('Kliyent').AsString;
st2:=DBgrid1.DataSource.DataSet.FieldByName('Number').AsString;
st2:=DBgrid1.DataSource.DataSet.FieldByName('Data').AsString;
if (st1=KLIYENT_ST)and(st2=NUMBER_ST)and(st3=DEN_ST) then
begin
DBGrid1.DataSource.DataSet.Edit;
dbgrid1.DataSource.DataSet.FieldByName('Cina').AsFloat:=
strtofloatDEF(stringgrid1.Cells[Den,1],0);
dbgrid1.DataSource.DataSet.FieldByName('CinaK').AsFloat:=
strtofloatDEF(stringgrid1.Cells[Den,2],0);
dbgrid1.DataSource.DataSet.FieldByName('Litru').AsInteger:=
strtointDEF(stringgrid1.Cells[Den,3],0);
dbgrid1.DataSource.DataSet.FieldByName('Suma').AsFloat:=
strtofloatDEF(stringgrid1.Cells[Den,4],0);
dbgrid1.DataSource.DataSet.FieldByName('Vodiy').AsString:=M_NA[2,num];
DBGrid1.DataSource.DataSet.Post;
DBGrid1.DataSource.DataSet.Refresh;
end;
DBGrid1.DataSource.dataset.next;
end;
DBGrid1.DataSource.dataset.First;
{*****************************************}
End;

Последний раз редактировалось Dark_Wolf; 15.11.2011 в 16:38.
Dark_Wolf вне форума Ответить с цитированием
Старый 15.11.2011, 18:45   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

НАмного удобнее и проще (и наверно правильнее) использовать SQL запрос для изменения записей
SERG1980 вне форума Ответить с цитированием
Старый 15.11.2011, 19:42   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Как минимум, строку
Код:
DBGrid1.DataSource.dataset.First;
надо добавить перед
Код:
while not DBGrid1.DataSource.dataset.eof do
З.Ы. И убрать строку
Код:
DBGrid1.DataSource.DataSet.Refresh;

Последний раз редактировалось mihali4; 16.11.2011 в 02:40.
mihali4 вне форума Ответить с цитированием
Старый 16.11.2011, 01:10   #4
Dark_Wolf
 
Регистрация: 01.11.2011
Сообщений: 7
По умолчанию

К сожалению это не помогло( я слишал, чтоби эта процедура работала, нужно ставить сетфокус в пля редактирования, но как - я не знаю.
Dark_Wolf вне форума Ответить с цитированием
Старый 16.11.2011, 08:13   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Цитата:
Сообщение от Dark_Wolf Посмотреть сообщение
К сожалению это не помогло( я слишал, чтоби эта процедура работала, нужно ставить сетфокус в пля редактирования, но как - я не знаю.
Раз не хотите цивилизованному делать (через SQL) тогда сделайте пошаговую отладку, посмотрите выполняется ли у вас это условие
Код:
if (st1=KLIYENT_ST)and(st2=NUMBER_ST)and(st3=DEN_ST)
А зачем вы через dbgrid к датасету добираетесь может проще через Table или у вас датасет постоянно меняется?
SERG1980 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вставке записи в БД (MDB) выдает ошибку "неправильный синтаксис запроса" lkjuio C# (си шарп) 8 01.05.2011 23:30
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
Редактирование данных, по нажатию на кнопку "Отмена" Droid БД в Delphi 4 13.03.2010 01:38
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04