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

Вниз

oraclequery.prior - error какой-то детский   Найти похожие ветки 

 
gentos   (2007-08-14 15:34) [0]

мастера не знаю в чем дело но есть следующий код

procedure TShowPictureForm.FormShow(Sender: TObject);
begin
  q := PTreeview.SelPicture(ID);
  q.Scrollable :=true;
  q.Execute;
  if q.FieldAsInteger("lvl")=1 then
   tbPrior.Enabled := false;
  common;
  q.Next;
  if q.Eof then
   tbNext.Enabled := false;
end;

procedure TShowPictureForm.tbNextClick(Sender: TObject);
begin
  tbPrior.Enabled := true;
  common;
  q.Next;
  if q.Eof then
   tbNext.Enabled := false;
end;
procedure TShowPictureForm.tbPriorClick(Sender: TObject);
begin
  tbNext.Enabled := true;
  q.Prior;
  common;
  if q.FieldAsInteger("lvl")=1 then
   tbPrior.Enabled := false;
end;

и общая процедурка для 3 предыдущих

procedure TShowPictureForm.common();
begin
  MStream :=  TMemoryStream.Create;
  LobCreateTemporary(LOB);
  Jpg:=TJPEGImage.Create;
  Bit := TBitmap.Create;
  LOB.Copy(q.LOBField("Picture"),q.LOBField("Picture").Size);
  MStream.CopyFrom(LOB,LOB.Size);
  MStream.Position:=0;
  Jpg.LoadFromStream(MStream);            // if jpg do bmp
  Bit.Assign(Jpg);
  img.Picture.Assign(Bit);
  Jpg.Free;
  Bit.Free;
  MStream.Free;
  LobFreeTemporary(LOB);
end;


да и  есть функция пакета PTreeview.SelPicture ее не показываю так как там все правильно и что получается кнопочка вперед при ее нажатие делает то, что надо - то есть, выводи мне на екран следующую картинку а при нажатии на кнопку предыдущая картинка ругается следующими словами : You cannot access field data beyond Eof и как это понять ? :) я ще не выхожу за рамки выборки и свойство q.Scrollable :=true; сделал тру как хелп пишет , в чем прикол ?  :)


 
Плохиш ©   (2007-08-14 15:38) [1]

В делфи встроена такая вещь, отладчиком кликают. Попробуй ей воспользоваться.


 
Сергей М. ©   (2007-08-14 15:39) [2]

Хня какая-то..

Укажи уже строчку в приведенном коде, которая вызывает исключение такое-то с таким-то сообщением..


 
gentos   (2007-08-14 15:47) [3]


>
> Сергей М. ©   (14.08.07 15:39) [2]


указал !, оказалось вместо q.prior выполняется комманда q.next что это такое ? :)


 
Плохиш ©   (2007-08-14 15:49) [4]


> оказалось вместо q.prior выполняется комманда q.next

Тут только два варианта или ошибка в вашей программе или ошибка в вашем компоненте, на который ссылается q.


 
Сергей М. ©   (2007-08-14 15:51) [5]


> вместо q.prior выполняется комманда q.next


Вранье.


 
gentos   (2007-08-14 15:57) [6]


> Сергей М. ©   (14.08.07 15:51) [5]


смысла в этом нет !, мне это этого вранье пользы никакой

procedure TShowPictureForm.tbPriorClick(Sender: TObject);
begin
  tbNext.Enabled := true;
  q.Prior;
  common;
//   if q.FieldAsInteger("lvl")=1 then
//    tbPrior.Enabled := false;
end;

при нажатии на эту клавишу выводит картинку после 2 не 1 , а 3 , то же самое было бы если бы я нажал на клавишу tbnext , код ее ниже

procedure TShowPictureForm.tbNextClick(Sender: TObject);
begin
  tbPrior.Enabled := true;
  common;
  q.Next;
  if q.Eof then
   tbNext.Enabled := false;
end;


 
Сергей М. ©   (2007-08-14 16:01) [7]


> gentos   (14.08.07 15:57) [6]


> выводит картинку после 2 не 1 , а 3


Какие нахрен "картинки" ?)


 
gentos   (2007-08-14 16:02) [8]


> Сергей М. ©   (14.08.07 15:51) [5]


функция ораклевая в пакете красиво лежит никого не трогает

FUNCTION Sel_Picture( nID IN NUMBER ) RETURN T_REFCURSOR IS      
 CUR T_REFCURSOR;
BEGIN
OPEN CUR FOR select * from WDS$DOCUMENTBODY u where id=nID order BY u.lvl;
 RETURN CUR;
END Sel_Picture;


 
Сергей М. ©   (2007-08-14 16:03) [9]


> gentos   (14.08.07 15:57) [6]


При движении курсора "взад" принято анализировать BOF.

Где у тебя этот анализ ?)


 
Вася Правильный   (2007-08-14 16:03) [10]


>  q.Prior;   common;
---
> common;   q.Next;

разницу видишь?
а может у тебя на разные кнопки один обработчик назначен?


 
gentos   (2007-08-14 16:05) [11]


> Сергей М. ©   (14.08.07 16:01) [7]


я отсканировал по очереди 3 бумажки: на 1 бумажке - нарисована "1" на второй "2" , на третьей "3" и загнал их со сканера в базу , теперь я их оттуда высовываю , так как некоторые  документы состоят из нескольки страниц , то есть возникла необходимость их листать туда сюда, сейчас вот это и реализовываю, так вот когда я нажимаю просмотр документа, то вначале появляется изображение с "1" когда клацаю "батоннекст" появляется изображение с "2" и вот когда клацаю , без разницы или влево или вправо, появляется "картинка с 3", вот так...


 
gentos   (2007-08-14 16:06) [12]


> Сергей М. ©   (14.08.07 16:03) [9]


а что такое BOF ?


 
gentos   (2007-08-14 16:07) [13]


> Вася Правильный   (14.08.07 16:03) [10]


смотрел все ок от перестановки "доданкив" сумма не миняется :) так и здесь, скорее всего проблема в [9] , но я не знаю , что и как это :)


 
gentos   (2007-08-14 16:14) [14]


> Сергей М. ©   (14.08.07 16:03) [9]

а можете написать как этот "взад" анализировать ?
может функции вот так вот написать :

FUNCTION Sel_Picture( nID IN NUMBER ) RETURN T_REFCURSOR IS      
 CUR T_REFCURSOR;
cSQL1 VARCHAR2(500):="select * from WDS$DOCUMENTBODY u where id=:nID order BY u.lvl";
BEGIN
OPEN CUR FOR cSQL1 USING nID;;
 END Sel_Picture;

тогда надо будет анализировать ?


 
Вася Правильный   (2007-08-14 16:14) [15]

BOF = beginning of file
EOF = end of file
свойства у датасета такие

> от перестановки "доданкив" сумма не миняется

еще как меняется: сначала показать что-то, а потом переехать на другую запись или сначала переехать, а потом показать ее содержимое


 
gentos   (2007-08-14 16:20) [16]


> Вася Правильный   (14.08.07 16:14) [15]


БОФ :)- я думал это что-то серьезное :), а насчет

> еще как меняется: сначала показать что-то, а потом переехать
> на другую запись или сначала переехать, а потом показать
> ее содержимое

в моем случае сначало необходимо поменять, а потом показать при нажатии на tbprior, а при нажатии на tbnext сначала показывают а потом перевожу так как я уже перевел при show формы, вот так


 
Вася Правильный   (2007-08-14 16:24) [17]


> а потом перевожу так как я уже перевел при show формы, вот так

плохо разваливать логику по разным углам
оттого и косяки


 
gentos   (2007-08-14 16:25) [18]


> Вася Правильный   (14.08.07 16:24) [17]
>
> > а потом перевожу так как я уже перевел при show формы,
>  вот так
>
> плохо разваливать логику по разным углам
> оттого и косяки


та нету тут никаких косяков :) эт уже наверное знак, что на сегодня уже писать хватит :)



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

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

Наверх




Память: 0.49 MB
Время: 0.04 c
9-1159546810
Ford
2006-09-29 20:20
2007.09.09
Ошибка в рендере ландшафта


15-1186756832
\/iKTOR
2007-08-10 18:40
2007.09.09
Улыбнитесь :)


2-1187001644
gentos
2007-08-13 14:40
2007.09.09
сжатие отсканированной фотки


15-1186563874
Суслик
2007-08-08 13:04
2007.09.09
Посоветуйте компонент - сохранение desktop а


15-1186913958
Kostafey
2007-08-12 14:19
2007.09.09
Что мне не нравится в командной строке?





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