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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.053 c
15-1351542602
Юрий
2012-10-30 00:30
2013.03.22
С днем рождения ! 30 октября 2012 вторник


2-1331667977
alex7777
2012-03-13 23:46
2013.03.22
Шлюз


1-1294760608
polyaev
2011-01-11 18:43
2013.03.22
Прошу помощи в задании


6-1259553474
maxistent
2009-11-30 06:57
2013.03.22
Проблема с компонентами TidTCPServer и TidTCPClient


15-1329856202
Юрий
2012-02-22 00:30
2013.03.22
С днем рождения ! 22 февраля 2012 среда