Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.11.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
2-1281693337
Михаил
2010-08-13 13:55
2010.11.07
[Error] Unit2.pas(43): Type of expression must be BOOLEAN


15-1279526811
Kerk
2010-07-19 12:06
2010.11.07
Всемастаковский шахматный турнир


15-1280332456
Baks
2010-07-28 19:54
2010.11.07
Как правильно разбить строку?


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


15-1280474574
Лезнайка на Нуле
2010-07-30 11:22
2010.11.07
когнитивный диссонанс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский