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

Вниз

Помогите с полем   Найти похожие ветки 

 
6ruse   (2010-08-11 08:07) [0]

Доброго времени суток! я пишу:
 for i := 1 to j do
  begin
   FrmMain.TBL_PHONES.Close;
   FrmMain.TBL_PHONES.Open();
   FrmMain.TBL_PHONES.Insert;
   FrmMain.TBL_PHONES.FieldByName("PERIOD").Value := FrmMain.DateTimePicker1.Date ;
   FrmMain.TBL_PHONES.FieldByName("PHONE").AsString := main_P_PHONE[i].phone ;
   FrmMain.TBL_PHONES.FieldByName("CALLSCOUNT").AsString := main_P_PHONE[i].CALLSCOUNT ;
   FrmMain.TBL_PHONES.FieldByName("SUM_OF_CALLS").AsString := main_P_PHONE[i].SUM_OF_CALLS;
   FrmMain.TBL_PHONES.Post();
  FrmMain.TBL_PHONES.UpdateTransaction.Commit();
   FrmMain.TBL_PHONES.Close;
   FrmMain.TBL_PHONES.SQLs.SelectSQL.Text := "SELECT GEN_ID( FOR_PHONES_INSERT,0) from RDB$DATABASE";
   FrmMain.TBL_PHONES.Open ;
   Trim(main_P_PHONE[i].CALLSCOUNT) ;
    for y := 1 to Strtoint(main_P_PHONE[i].CALLSCOUNT) do
     begin
      main_P_CALLS[y].phones_ID := FrmMain.TBL_PHONES.Fields[0].AsInteger ;
      end;
  end;
первый проход основного цикла нормальный при вхождении в первый цикл во второй раз появляется ошибка "поле PERIOD не найдено". Подскажите пожалуйста в чем тут дело


 
sniknik ©   (2010-08-11 09:56) [1]

> Подскажите пожалуйста в чем тут дело
в бессмысленной экономии компонент. + невнимательность.


 
sniknik ©   (2010-08-11 09:59) [2]

> "SELECT GEN_ID( FOR_PHONES_INSERT,0) from RDB$DATABASE"
вот покажи(найди сам если не доверяешь ошибкам) в запросе "поле PERIOD"


 
Виталий Панасенко   (2010-08-11 13:59) [3]

как я помню, ты используешь FIBPlus.. даже если СУБД - ИБ или старые версии ФБ, то :
первое - FrmMain.TBL_PHONES.UpdateTransaction.Commit(); это по большому счету нахрен не нужно. если используешь ДВА компонента транзакций для чтения и записи. выставляешь у FIBDataSetа св-во AutoCommit=True И все.
второе - если СУБД ФБ 2.х то дергать генератор
> "SELECT GEN_ID( FOR_PHONES_INSERT,0) from RDB$DATABASE";

так не стОит. для этого есть триггер и ключевое слово RETURNING.. если е все-таки хочется самому управлять генератором, то у FIBDataSet есть св-ва AutoUpdateOptions, где ты указываешь, какой генератор дергается, с каким шагом, для какой таблицы, для какого поля, в какой момент (OnNewRecord/BeforePost)

З.Ы. пока писал, еще раз глянул твой код - это ты генератор дергаешь НА НОЛЬ, чтобы определить количество записей? Ну-ну, удачи...


 
Alekcey ©   (2010-08-13 13:33) [4]

сам так сегодня лапухнулся сегодня . пару тем выше смотри



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
2-1281938546
mefodiy
2010-08-16 10:02
2010.11.07
Сравнение "runtime" и "design time"


15-1280176169
Юрий
2010-07-27 00:29
2010.11.07
С днем рождения ! 27 июля 2010 вторник


15-1280041741
Loginov Dmitry
2010-07-25 11:09
2010.11.07
Пишем свой wysiwyg HTML-редактор


15-1280211662
Jeer
2010-07-27 10:21
2010.11.07
Новое -хорошо забытое старое.


2-1281896457
XillVikler
2010-08-15 22:20
2010.11.07
слежение за объектом