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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.041 c
4-1111843558
Sashag
2005-03-26 16:25
2005.07.11
Как общаться с capi2032.dll


14-1118826756
sco123
2005-06-15 13:12
2005.07.11
Требуется программист на Delphi


14-1118487315
Kerk
2005-06-11 14:55
2005.07.11
Линуксоидам или я уж не знаю кому...


4-1115988808
pavlov
2005-05-13 16:53
2005.07.11
Панель задач


1-1118714581
Viktop
2005-06-14 06:03
2005.07.11
Связи таблиц в D9





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