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

Вниз

Delphi7+DBGridEh+FireBird+IBDataSet   Найти похожие ветки 

 
Alekcey ©   (2010-08-13 11:58) [0]

Delphi7+DBGridEh+FireBird+IBDataSet

таблица:

CREATE TABLE RANGEIP (
   ID_RANGEIP  INTEGER NOT NULL,
   IP1         VARCHAR(20),
   IP2         VARCHAR(20),
   FLAGIS      SMALLINT
);


с IBDataSet делаю так:
в GeneratorField:
GEN_RANGEIP_ID -> ID_RANGEIP By 1

в InsertSQL:
insert into RANGEIP (ID_RANGEIP, IP1, IP2, FLAGIS ) values (:ID_RANGEIP, :IP1, :IP2, :FLAGIS)

в ModifySQL:
update RANGEIP set IP1=:IP1, IP2=:IP2, FLAGIS=:FLAGIS where ID_RANGEIP=:OLD_ID_RANGEIP

в RefreshSQL:
select * from  RANGEIP where ID_RANGEIP=:ID_RANGEIP order by IP1

в SelectSQL:
select * from  RANGEIP order by IP1

При выполнении кода:

  DataModuleMain.IBDataSetRANGEIP.open;
  DataModuleMain.IBDataSetRANGEIP.Insert;   DataModuleMain.IBDataSetRANGEIP.ParamByName("IP1").AsString:=FormMain.EditRangeI P1.Text+"."+FormMain.EditRangeIP2.Text+"."+FormMain.EditRangeIP3.Text+"."+FormMain.EditRangeIP4.Text;
  DataModuleMain.IBDataSetRANGEIP.ParamByName("IP2").AsString:=FormMain.EditRangeI P5.Text+"."+FormMain.EditRangeIP6.Text+"."+FormMain.EditRangeIP7.Text+"."+FormMain.EditRangeIP8.Text;
  DataModuleMain.IBDataSetRANGEIP.Post;


возникает ошибка:
Field "IP1" not found


 
Sergey13 ©   (2010-08-13 12:10) [1]

> [0] Alekcey ©   (13.08.10 11:58)

> DataModuleMain.IBDataSetRANGEIP.ParamByName("IP1").AsString:
> =FormMain.EditRangeI P1.Text+"."+FormMain.EditRangeIP2.Text+"."+FormMain.
> EditRangeIP3.Text+"."+FormMain.EditRangeIP4.Text;

Присваивать значения надо ПОЛЯМ, а не параметрам.


 
Alekcey ©   (2010-08-13 13:11) [2]

понял, спасибо


 
Alekcey ©   (2010-08-13 13:28) [3]

Мужики, удобный компонент оказывается, надо взять на вооружение.

для MS SQL Server подобного компонента с SelectSQL, DeleteSQL ... не подскажите?


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

на гриде CheckBox сделал. устанавливаю флаг. закрываю программу, запускаю снова, флаг не установлен.
Если ставлю флаги на нескольких полях закрываю программу, запускаю снова, флаги установлены только на некоторых полях.

Я так понял транзакцию комитить надо. в каком методе это делать или? или.. или как?
в транзакции Read_Committed


 
Alekcey ©   (2010-08-13 15:53) [5]

на FormShow:
 Way_to_database:=Application.ExeName;
 while Way_to_database[length(Way_to_database)]<>"\" do
   delete(Way_to_database,length(Way_to_database),1);

 DataModuleMain.IBDatabaseMain.Connected:=false;
 DataModuleMain.IBDatabaseMain.DatabaseName:=Way_to_database+"BDSCANIP.fdb";
 DataModuleMain.IBDatabaseMain.Connected:=true;

 DataModuleMain.IBTransactionRANGEIP.Active:=true;
 DataModuleMain.IBDataSetRANGEIP.open;
 DataModuleMain.IBDataSetRANGEIP.First;
 DataModuleMain.IBDataSetRANGEIP.Last;
 DataModuleMain.IBDataSetRANGEIP.First;

Transaction Properties= Read_Committed

добавляю запись:
  DataModuleMain.IBDataSetRANGEIP.open;
  DataModuleMain.IBDataSetRANGEIP.Insert;   DataModuleMain.IBDataSetRANGEIP.FieldByName("IP1").AsString:=FormMain.EditRangeI P1.Text+"."+FormMain.EditRangeIP2.Text+"."+FormMain.EditRangeIP3.Text+"."+FormMain.EditRangeIP4.Text;   DataModuleMain.IBDataSetRANGEIP.FieldByName("IP2").AsString:=FormMain.EditRangeI P5.Text+"."+FormMain.EditRangeIP6.Text+"."+FormMain.EditRangeIP7.Text+"."+FormMain.EditRangeIP8.Text;
  DataModuleMain.IBDataSetRANGEIP.FieldByName("FLAGIS").AsInteger:=1;
  DataModuleMain.IBDataSetRANGEIP.Post;


Удаляю запись:
if  DataModuleMain.IBDataSetRANGEIP.FieldByName("ID_RANGEIP").Value<>null then
begin
  DataModuleMain.IBDataSetRANGEIP.Delete;
  DataModuleMain.IBDataSetRANGEIP.open;
end;


Всё вышеперечисленное работает нормально. и коммитится сразу, а checkBox сохраняется не на всех записях


 
Sergey13 ©   (2010-08-13 16:11) [6]

> [5] Alekcey ©   (13.08.10 15:53)
> Всё вышеперечисленное работает нормально. и коммитится сразу,
> а checkBox сохраняется не на всех записях

Во всем вышеперечисленном нет кода установки/переустановки флага.


 
Alekcey ©   (2010-08-13 16:28) [7]

а никакой код и не писал

CheckBoxces в true
и
в KeyList 1 и 0


 
Sergey13 ©   (2010-08-16 13:32) [8]

> [7] Alekcey ©   (13.08.10 16:28)
> а никакой код и не писал

> [5] Alekcey ©   (13.08.10 15:53)
> добавляю запись:
> Удаляю запись:

После чего именно
> checkBox сохраняется не на всех записях

?



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

Форум: "Базы";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.072 c
2-1332437524
sasha198407
2012-03-22 21:32
2013.03.22
ошибка Exception EAccessViolation in module Project1.exe


15-1330005162
Artem
2012-02-23 17:52
2013.03.22
Посоветуйте программу-терминал...


15-1349424452
Roman_man
2012-10-05 12:07
2013.03.22
Что-то с отрображением файлов.


15-1350165727
Юрий Зотов
2012-10-14 02:02
2013.03.22
Ностальгия по детству


15-1337791087
Avatar
2012-05-23 20:38
2013.03.22
Посоветуйте роутер





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский