Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: CL | DM;

Вниз

Записи в таблицы   Найти похожие ветки 

 
mpokemonov ©   (2005-12-02 16:10) [0]

Добрый день!
Ситуация: есть таблица, производится фильтрация
table1.Active:=true;
table1.Filter:=""pole"="""+ edit1.Text+"""";
table1.Filtered:=true;
после этого производятся изменения в данных, которые необходимо insert в тот же table1.
Вопрос: как сделать так, чтобы старые данные остались, а новые добавились..


 
Anatoly Podgoretsky ©   (2005-12-02 16:18) [1]

Insert + Post


 
Desdechado ©   (2005-12-02 16:19) [2]

> производятся изменения в данных, которые необходимо insert
так изменения или добавления?

> как сделать так, чтобы старые данные остались, а новые добавились
так всегда и делается, а что у тебя?


 
Сафаров ©   (2005-12-02 16:21) [3]

как-то запутанно.
requery чем не подходит?


 
mpokemonov ©   (2005-12-02 16:27) [4]

Anatoly Podgoretsky ©   (02.12.05 16:18) [1]
Insert + Post

не подходит - ибо insert при Filter почему-то не хочет делаться, пробовал :-((


 
Anatoly Podgoretsky ©   (2005-12-02 16:30) [5]

mpokemonov ©   (02.12.05 16:27) [4]
До сих пор подобное не наблюдалось. Пробовать конечно можно, но еще лучше делать правильно. Твоего кода мы не видим, вероятно в нем ошибка.


 
mpokemonov ©   (2005-12-02 16:35) [6]

идет пересчет отфильтрованных значений - меняется сумма, в зависимости от партии.
если просто изменить - вопросов нет, проблема только когда нужно 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:37) [7]

mpokemonov ©   (02.12.05 16:35) [6]
Вот здесь нужно создать новую запись и добавить в ту же таблицу.

Здесь нужно дать команду .Post


 
mpokemonov ©   (2005-12-02 16:39) [8]

дык post подтверждает изменение, но я нигде явно не указываю, что нужно это изменение "добавить", а не "произвести над текущей записью"


 
Anatoly Podgoretsky ©   (2005-12-02 16:41) [9]

mpokemonov ©   (02.12.05 16:39) [8]
Дык неправильно мнение, он подверждает и добавление в таблицу. А если ты нигде не указываешь добавить, то и говорить об добавлении не приходится. У тебя что курсовая?


 
mpokemonov ©   (2005-12-02 16:43) [10]

ясен что подтверждает, но проблема в том, что как только я указываю явно действие: append\insert - начинает ругаться. А если я просто post сделаю, он мне перезапишет текущую строку, а мне нужно новую измененную.В этом как раз и есть вопрос


 
Anatoly Podgoretsky ©   (2005-12-02 16:57) [11]

mpokemonov ©   (02.12.05 16:43) [10]
Как? Матом? Или по человечески?


 
mpokemonov ©   (2005-12-02 17:02) [12]

ругня: table1 not in edit or insert mode ...
.edit задан.
ругня возникает только тогда, когда я начинаю добавлять запись...
происходит только с фильстрованными записями :-(


 
Anatoly Podgoretsky ©   (2005-12-02 17:03) [13]

mpokemonov ©   (02.12.05 17:02) [12]
Перевожу - набор данных не находится в режиме редактирования или вставки.


 
mpokemonov ©   (2005-12-02 17:10) [14]

да понятно! вопрос - почему к фильтрованным данным не применимо insert?
как только я снимаю фильтрацию, все окей, но мне нужно с отобранными данными работать.


 
аматор ©   (2005-12-02 18:56) [15]

Anatoly Podgoretsky - ну и терпение (завидую)............

table1.Insert(или Edit); кажись сюда.
table1.FieldByName("Summ_mat").AsString:=d;
..............................................................
table1.FieldByName("Zakaz").AsString:=combobox3.Text;

А Вы кажись заработались...


 
mpokemonov ©   (2005-12-02 19:13) [16]

ага, все такие умные и терпеливые...только пример последний, он замечательно, впрочем как и все остальные, работает , ЕСЛИ НЕ ВКЛЮЧЕНА ФИЛЬТРАЦИЯ!!!!
ПРИ ВКЛЮЧЕННОЙ фильтрации НЕ РАБОТАЕТ INSERT!!!!


 
Fay ©   (2005-12-02 19:32) [17]

2 mpokemonov ©   (02.12.05 19:13) [16]
ТОГДА РАБОТАЙ ЧЕРЕЗ IBDataSet !!!!!!!!!!!!!!

OK?!!!!!!!!!


 
аматор ©   (2005-12-02 23:37) [18]

В серверах, кажись, Table (и тот муляж) - всё работает на запросах...
Ссори, для Вашей проблемы нужно выполнить запрос (Дерзайте). Да IBDataSet запросы хочет. (Извиняюсь, с ветки про парадокс забежал сюда и не прочёл, что вопрос о сервере).


 
mpokemonov ©   (2005-12-06 10:26) [19]

Добрый день!
Всем спасибо за помощь! Вопрос решился сам собой - глюк оболочки :-(
переустановил делфю - помогло :-)



Страницы: 1 вся ветка

Текущий архив: 2006.02.05;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.026 c
2-1137435882
Navi
2006-01-16 21:24
2006.02.05
Ошибка удаления записи


2-1137429166
Silver__Dragon
2006-01-16 19:32
2006.02.05
Отслеживание USB


2-1137570298
md
2006-01-18 10:44
2006.02.05
double to string


4-1132644725
Pank83
2005-11-22 10:32
2006.02.05
Отследить запуск процесса


2-1137419869
pathfinder
2006-01-16 16:57
2006.02.05
Вопрос по БД.