![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Записи в таблицы [D7, IB7.x]
mpokemonov © (2005-12-02 16:10:00)Добрый день!
Ситуация: есть таблица, производится фильтрация
table1.Active:=true;
table1.Filter:='"pole"='''+ edit1.Text+'''';
table1.Filtered:=true;
после этого производятся изменения в данных, которые необходимо insert в тот же table1.
Вопрос: как сделать так, чтобы старые данные остались, а новые добавились..
mpokemonov (2005-12-06 10:26:00) [1]Добрый день!
Всем спасибо за помощь! Вопрос решился сам собой - глюк оболочки :-(
переустановил делфю - помогло :-)
аматор (2005-12-02 23:37:00) [2]В серверах, кажись, Table (и тот муляж) - всё работает на запросах...
Ссори, для Вашей проблемы нужно выполнить запрос (Дерзайте). Да IBDataSet запросы хочет. (Извиняюсь, с ветки про парадокс забежал сюда и не прочёл, что вопрос о сервере).
Fay (2005-12-02 19:32:00) [3]2 mpokemonov © (02.12.05 19:13) [16]
ТОГДА РАБОТАЙ ЧЕРЕЗ IBDataSet !!!!!!!!!!!!!!
OK?!!!!!!!!!
mpokemonov (2005-12-02 19:13:00) [4]ага, все такие умные и терпеливые...только пример последний, он замечательно, впрочем как и все остальные, работает , ЕСЛИ НЕ ВКЛЮЧЕНА ФИЛЬТРАЦИЯ!!!!
ПРИ ВКЛЮЧЕННОЙ фильтрации НЕ РАБОТАЕТ INSERT!!!!
аматор (2005-12-02 18:56:00) [5]Anatoly Podgoretsky - ну и терпение (завидую)............
table1.Insert(или Edit); кажись сюда.
table1.FieldByName('Summ_mat').AsString:=d;
..............................................................
table1.FieldByName('Zakaz').AsString:=combobox3.Text;
А Вы кажись заработались...
mpokemonov (2005-12-02 17:10:00) [6]да понятно! вопрос - почему к фильтрованным данным не применимо insert?
как только я снимаю фильтрацию, все окей, но мне нужно с отобранными данными работать.
Anatoly Podgoretsky (2005-12-02 17:03:00) [7]mpokemonov © (02.12.05 17:02) [12]
Перевожу - набор данных не находится в режиме редактирования или вставки.
mpokemonov (2005-12-02 17:02:00) [8]ругня: table1 not in edit or insert mode ...
.edit задан.
ругня возникает только тогда, когда я начинаю добавлять запись...
происходит только с фильстрованными записями :-(
Anatoly Podgoretsky (2005-12-02 16:57:00) [9]mpokemonov © (02.12.05 16:43) [10]
Как? Матом? Или по человечески?
mpokemonov (2005-12-02 16:43:00) [10]ясен что подтверждает, но проблема в том, что как только я указываю явно действие: append\insert - начинает ругаться. А если я просто post сделаю, он мне перезапишет текущую строку, а мне нужно новую измененную.В этом как раз и есть вопрос
Anatoly Podgoretsky (2005-12-02 16:41:00) [11]mpokemonov © (02.12.05 16:39) [8]
Дык неправильно мнение, он подверждает и добавление в таблицу. А если ты нигде не указываешь добавить, то и говорить об добавлении не приходится. У тебя что курсовая?
mpokemonov (2005-12-02 16:39:00) [12]дык post подтверждает изменение, но я нигде явно не указываю, что нужно это изменение "добавить", а не "произвести над текущей записью"
Anatoly Podgoretsky (2005-12-02 16:37:00) [13]mpokemonov © (02.12.05 16:35) [6]
Вот здесь нужно создать новую запись и добавить в ту же таблицу.
Здесь нужно дать команду .Post
mpokemonov (2005-12-02 16:35:00) [14]идет пересчет отфильтрованных значений - меняется сумма, в зависимости от партии.
если просто изменить - вопросов нет, проблема только когда нужно Insert new record :-(
try
a:=table1.FieldByName('Tsena_mat').AsVariant; //Öåíà
b:=table1.fieldbyname('Kol_mat').AsVariant;//êîë-âî íà åä-öó
f:=table1.fieldbyname('Brak').AsVariant; //Áðàê
c:=edit1.Text; //Ïàðòèÿ
g:=c*b; //Êî-âî íà ïàðòèþ
d:=(g+f)*a;
table1.FieldByName('Summ_mat').AsString:=d;
table1.FieldByName('Smeta').AsString:=edit4.Text;
table1.FieldByName('Partia').AsString:=edit1.Text;
table1.FieldByName('Razrab').AsString:=edit7.Text;
table1.FieldByName('date').AsString:=datetostr(date1.Date);
table1.FieldByName('date_FIN').AsString:=datetostr(date2.Date);
table1.FieldByName('Ved_pr').AsString:=combobox2.Text;
table1.FieldByName('Zakaz').AsString:=combobox3.Text;
Вот здесь нужно создать новую запись и добавить в ту же таблицу.
table1.Next;
except
application.MessageBox('Îøèáêà â ðàçäåëå ìàòåðèàëû!','Âíèìàíèå!',mb_ok+mb_ic onstop);
end;
Anatoly Podgoretsky (2005-12-02 16:30:00) [15]mpokemonov © (02.12.05 16:27) [4]
До сих пор подобное не наблюдалось. Пробовать конечно можно, но еще лучше делать правильно. Твоего кода мы не видим, вероятно в нем ошибка.
mpokemonov (2005-12-02 16:27:00) [16]Anatoly Podgoretsky © (02.12.05 16:18) [1]
Insert + Post
не подходит - ибо insert при Filter почему-то не хочет делаться, пробовал :-((
Сафаров (2005-12-02 16:21:00) [17]как-то запутанно.
requery чем не подходит?
Desdechado (2005-12-02 16:19:00) [18]> производятся изменения в данных, которые необходимо insert
так изменения или добавления?
> как сделать так, чтобы старые данные остались, а новые добавились
так всегда и делается, а что у тебя?
Anatoly Podgoretsky (2005-12-02 16:18:00) [19]Insert + Post