Форум: "Базы";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
ВнизЗаписи в таблицы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.012 c