Главная страница
    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.077 c
3-1285063680
yurikon
2010-09-21 14:08
2013.03.22
TADOQuery и TADODataSet


15-1330664086
CleriC
2012-03-02 08:54
2013.03.22
HotKey в среде Delphi (не могу назначить)


15-1338356867
AV
2012-05-30 09:47
2013.03.22
Наглядно изобразить ход работы графиком


15-1330374602
Юрий
2012-02-28 00:30
2013.03.22
С днем рождения ! 28 февраля 2012 вторник


15-1335703513
Vik
2012-04-29 16:45
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский