Главная страница
    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
15-1350066609
Лёха
2012-10-12 22:30
2013.03.22
Помогите люди добрые


2-1330496040
Cobalt
2012-02-29 10:14
2013.03.22
Char в D2010


15-1340390614
Error Macro
2012-06-22 22:43
2013.03.22
waveOutWrite. Как вывести 2 звука одновременно?


15-1338590317
М
2012-06-02 02:38
2013.03.22
Как лучше оформить строку аттрибутов?


2-1342507580
Pcrepair
2012-07-17 10:46
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский