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

Вниз

Помогите новичку в InterBase   Найти похожие ветки 

 
Vint   (2002-09-18 14:37) [0]

Уважаемые мастера!
C IB не работал, а тут понадобилось перебросить в чужую таблицу (IB) данные, перебрасываю напрямую

Form1.IBTable1.Insert;
Form1.IBTable1.FieldByName("NAME").AsString := " . . . ";
Form1.IBTable1.Post;
IBTransaction1.Commit;

выдает ошибку:
Cannot perform operation - DB is currently open
может из-за того, что там всякие навороты, типа логики (генераторы, триггеры и т.д.) мне разобраться в этом трудно.

помогите пожалуйста кто знает (и у кого есть время или желание)


 
Mike Kouzmine   (2002-09-18 15:10) [1]

На какой строке ошибка? А старт делаешь?


 
Cobalt   (2002-09-18 15:15) [2]


> IBTransaction1.Commit;


А транзакцию в явном виде начинаешь?
Возможно, метод Post сам закрывает транзакцию, посмотри исходник.


 
Vint   (2002-09-18 15:15) [3]

>Mike Kouzmine (18.09.02 15:10)

Издеваешься ?


 
Vint   (2002-09-18 15:20) [4]

>Cobalt © (18.09.02 15:15)

Вот, что я могу посмотреть:

/* Domain definitions */
CREATE DOMAIN TCHECK AS SMALLINT
default 0
check (Value in (0, 1)) NOT NULL;
CREATE DOMAIN TCHECK AS SMALLINT
default 0
check (Value in (0, 1)) NOT NULL;
CREATE DOMAIN TCHECKFOUR AS SMALLINT
default 0
check (Value in (0,1,2,3)) NOT NULL;
CREATE DOMAIN TEXILE AS INTEGER;
CREATE DOMAIN TKEY AS INTEGER NOT NULL;
CREATE DOMAIN TKEY AS INTEGER NOT NULL;
CREATE DOMAIN TKEY AS INTEGER NOT NULL;
CREATE DOMAIN TLARGENAME AS VARCHAR(70) CHARACTER SET WIN1251
default "" COLLATE PXW_CYRL;
CREATE DOMAIN TLARGENAME AS VARCHAR(70) CHARACTER SET WIN1251
default "" COLLATE PXW_CYRL;
CREATE DOMAIN TMEDIUMNAME AS VARCHAR(50) CHARACTER SET WIN1251
default "" COLLATE PXW_CYRL;
CREATE DOMAIN TMONEY AS NUMERIC(15, 4)
default 0 NOT NULL;
CREATE DOMAIN TMONEY AS NUMERIC(15, 4)
default 0 NOT NULL;
CREATE DOMAIN TPS AS VARCHAR(20) CHARACTER SET WIN1251
default "";
CREATE DOMAIN TSMALLNAME AS VARCHAR(20) CHARACTER SET WIN1251
default "" COLLATE PXW_CYRL;
CREATE DOMAIN TSMALLNAME AS VARCHAR(20) CHARACTER SET WIN1251
default "" COLLATE PXW_CYRL;
CREATE DOMAIN TSMALLNAME AS VARCHAR(20) CHARACTER SET WIN1251
default "" COLLATE PXW_CYRL;
CREATE DOMAIN TSMALLNAME AS VARCHAR(20) CHARACTER SET WIN1251
default "" COLLATE PXW_CYRL;
CREATE DOMAIN TSTATUS AS INTEGER
default 0 NOT NULL;
CREATE DOMAIN TSTATUS AS INTEGER
default 0 NOT NULL;
CREATE DOMAIN TSTATUS AS INTEGER
default 0 NOT NULL;

/* Table: CTAGS, Owner: JC4 */

CREATE TABLE "CTAGS"
(
"ID" "TKEY",
"STATUS" "TKEY",
"NAME" "TLARGENAME",
"NICK" "TSMALLNAME",
"FORM" "TCHECK",
"AD" "TMEDIUMNAME",
"PHONE" "TSMALLNAME",
"INN" "TSMALLNAME",
"R_S" "TSMALLNAME",
"IDBANK" "TKEY",
"DOVFACE" "TLARGENAME",
"PS" "TPS",
"REALTYP" "TCHECKFOUR",
"REALDY" "TSTATUS",
"REALPAY" "TSTATUS",
"REALSMMAX" "TMONEY",
"REALSTATUS" "TSTATUS",
"SMCLOSE" "TMONEY",
"DISABLED" "TCHECK",
"IDEXT" "TEXILE",
CONSTRAINT "PK_CTAGS" PRIMARY KEY ("ID")
);
ALTER TABLE "CTAGS" ADD CONSTRAINT "FK_CTAGS_BANKS" FOREIGN KEY ("IDBANK") REFERENCES BANKS ("ID");
SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER "CTAGS_TI" FOR "CTAGS"
ACTIVE BEFORE INSERT POSITION 0
as begin
if (NEW.id is null) then NEW.id=gen_id(ctags_gen, 1);
if (NEW.idExt is not null) then begin
NEW.Nick=NEW.Name;
NEW.Status=4;
end
end
^

CREATE TRIGGER "CTAGS_TI1" FOR "CTAGS"
ACTIVE AFTER INSERT POSITION 0
as
declare variable idMnt integer;
begin
execute procedure MntValid("TODAY")returning_values idMnt;
insert into ctagclcs (idctag, idMnt) values (NEW.id, :idMnt);
end
^

CREATE TRIGGER "CTAGS_TD" FOR "CTAGS"
ACTIVE BEFORE DELETE POSITION 0
as begin
if (OLD.id in(1,2,3)) then exception SESysData;
end
^

COMMIT WORK ^
SET TERM ;^


а IBTransaction1.Commit; это я так на всякий случай :-)



 
Mike Kouzmine   (2002-09-18 15:20) [5]

В смысле? Я же не знаю, что ты пишешь у себя, я только вижу что написано в вопросе.
Это я могу спросить - Издеваешься?


 
Vint   (2002-09-18 15:31) [6]

>Mike Kouzmine (18.09.02 15:20)

Вся программка это те строчки, что в вопросе,
да еще DataSource1, IBTransaction1, IBDatabase1, IBTransaction1 и Button1 :-)


 
Mike Kouzmine   (2002-09-18 15:36) [7]

А что удивительного, что я спросил про старт? Кобальт тоже спросил. И он, наверное правильно сказал, что начинаешь неявно и постом же ее закрываешь, а потом пытаешься еще и коммит делать. Хотя, я не силен в этом, просто хотел по мере знаний помочь. Надо подождать когда мастера подскажут.


 
Vint   (2002-09-18 15:39) [8]

>Mike Kouzmine (18.09.02 15:20)

Вот код полностью:

procedure TForm1.Button1Click(Sender: TObject);
begin
IBDatabase1.Connected := true;
IBTransaction1.Active := true;
IBTable1.Active := true;

IBDatabase1.Params.Clear;
IBDatabase1.Params.Add("user_name=jc4");
IBDatabase1.Params.Add("password=123456");
IBDatabase1.Params.Add("lc_ctype=CYRL");
IBDatabase1.Params.Add("lc_ctype=WIN1251");
IBDatabase1.Params.Add("sql_role_name=finance");

Form1.IBTable1.Insert;
Form1.IBTable1.FieldByName("ID").AsInteger := 6000;
Form1.IBTable1.FieldByName("STATUS").AsInteger := 1;
Form1.IBTable1.FieldByName("IDBANK").AsInteger := 1;
Form1.IBTable1.FieldByName("NAME").AsString := "Иванов Петр";
Form1.IBTable1.Post;

IBTransaction1.Commit;
IBDatabase1.Connected := false;
end;



 
Vint   (2002-09-18 15:48) [9]

Вопрос закрыт, сам разобрался!


 
Johnmen   (2002-09-18 15:51) [10]

>Vint © (18.09.02 15:39)

Местами бредово.......:)
А именно - почему сначала коннект, а потом уж параметры коннекта ?????!!!!!!!!


 
Mike Kouzmine   (2002-09-18 15:55) [11]

А что было?



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

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

Наверх





Память: 0.48 MB
Время: 0.007 c
4-32100
Nikolab
2002-08-28 11:38
2002.10.10
Dlia nekotorie vk_xxx TCheckBox.OnKeyDown ne vuizivaetsia


14-31948
Flamingo-Star
2002-09-13 22:00
2002.10.10
?


1-31851
ZXCV
2002-09-27 01:23
2002.10.10
ListBox


4-32061
Roxtady
2002-08-22 16:35
2002.10.10
Клик мышкой


4-32064
IrcOp
2002-08-23 23:10
2002.10.10
SetCapture





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