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

Вниз

XSQLDA index out of range   Найти похожие ветки 

 
ali_tash   (2005-05-28 04:55) [0]

это сообщение об ошибке выходит когда я пытаюсь сделать INSERT
в эту таблицу

CREATE GENERATOR GEN_SN_FILE;

CREATE TABLE SN_FILE (
   CODE       INTEGER NOT NULL,
   FILE_TYPE  CHAR(1) NOT NULL,
   LINE       VARCHAR(4000),
   DIRECTION  SMALLINT NOT NULL,
   CODE_ORG   SMALLINT NOT NULL
);

ALTER TABLE SN_FILE ADD CONSTRAINT CHK_SN_FILE check (FILE_TYPE IN ("A","D"));

ALTER TABLE SN_FILE ADD CONSTRAINT PK_SN_FILE PRIMARY KEY (CODE);

CREATE INDEX NDX_SN_FILE_TYPE ON SN_FILE (FILE_TYPE);

SET TERM ^ ;

/* Trigger: TR_BI_SN_FILE */
CREATE TRIGGER TR_BI_SN_FILE FOR SN_FILE
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 NEW.CODE = GEN_ID(GEN_SN_FILE,1);
END
^
SET TERM ; ^

из этой процедуры

function TDataProcessor.List2Table(var ErrMsg: string): Boolean;
var
 i: Integer;  //FQuery: TIBQuery
begin
 Result:=True;
 try
 FQuery.SQL.Text:= "DELETE FROM SN_FILE WHERE FILE_TYPE=""D"" AND DIRECTION="+FDirection+" AND CODE_ORG="+FGetterCode+";";
 FQuery.ExecSQL;
   for I := 0 to FListFile.Count - 1 do
     begin
       FQuery.SQL.Text:="INSERT INTO SN_FILE (FILE_TYPE, LINE, DIRECTION, CODE_ORG) VALUES"
                       +"(""D"","+QuotedStr(FListFile.Strings[i])+","+FDirection+","+FGetterCode+");";
       FQuery.ExecSQL;
       Inc(FRowsProcessed);
       if FRowsProcessed > MaxRowsProcessed then
         begin
           Application.ProcessMessages;
           FRowsProcessed:= 1;
         end;
     end;
 except on E: Exception do
   begin
     ErrMsg:=E.Message + FListFile.Strings[i]+#13+"Line = "+IntToStr(i);
     Result:=False;
     FQuery.Transaction.RollbackRetaining;
   end;
 end;
end;

Строка с инсертом на которой возникает исключительная ситуация
без этой процедуры проходит без ошибок.

Помогите разобратся в чем проблема ?


 
ali_tash   (2005-05-28 05:08) [1]

забыл написать .
перед тем как возникает ошибка, эта процедура успевает вставить в таблицу более 7 тыс записей


 
Zacho ©   (2005-05-28 11:04) [2]

Может, просто использовать именно те компоненты, которые нужны ? Т.е. для выполнения запросов есть TIBSQL, а TIBQuery вообще лучше выкинуть нафиг.
И попробуй поставить последний апдейт IBX.
И ещё не помешает почитать http://www.ibase.ru/devinfo/generator.htm


 
DSKalugin ©   (2005-05-28 13:11) [3]

DIRECTION  SMALLINT NOT NULL,
CODE_ORG   SMALLINT NOT NULL

SMALLINT это целочисленное значение -32768 до +32767
Возможно ты пытаешься вставить значение, которые выходит за границы этого диапазона допустимых значений

П.С. Код не оптимизирован. Его можно ускорить


 
ali_tash   (2005-05-28 23:20) [4]

DSKalugin нет за диапазон значения не выходят
code_org=1 direction=6

а строка с инсертом на которой выходит ошибка, в IB Expert проходит.


 
stud ©   (2005-05-30 09:18) [5]

а при трассировке как выглядит FQuery.SQL.Text?


 
ЮЮ ©   (2005-05-30 09:28) [6]

Т.е. 7 тыс. записей в рамках одной транзакции? А это не может быть причиной ошибки?


 
DSKalugin ©   (2005-05-30 11:23) [7]

2 ЮЮ ©   (30.05.05 09:28) [6]

не может
у меня ежедневно проходит больше модификаций в контексте одной транзакции.

В коде нет почемуто явного старта и подтверждения транзакции, а надо бы.
Сервер то какой версии?


 
stud ©   (2005-05-30 11:27) [8]


> QuotedStr(FListFile.Strings[i])+

здается мне ошибка именно здесь. скорее всего значение возвращается в таком виде, что воспринимается как несколько параметровнапример в передаваемой строке есть апострофы и запятые


 
ali_tash   (2005-05-31 00:39) [9]

stud

Да в строке есть апострофы и запятые
, но эта строка в IB Expert выполняется нормально, похоже что это глюк IB .

пороблему решил загрузкой в BLOB.

спасибо.



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

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
1-1118749464
GEEK
2005-06-14 15:44
2005.07.11
В чем ошибка? Можно ли сравнить две TPoint?


3-1116930121
FunkyByte
2005-05-24 14:22
2005.07.11
Какие есть классы для доступа к dbf-таблицам без ADO и пр.


14-1118266840
Германн
2005-06-09 01:40
2005.07.11
Установка и удаление программ


1-1118732777
Layner
2005-06-14 11:06
2005.07.11
Как отловить у ToolBar режим floating, т.е. когда ToolBar


9-1112037257
Trimp
2005-03-28 23:14
2005.07.11
Antialiasing