Главная страница
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.51 MB
Время: 0.021 c
4-1174330969
THE__Scorpion
2007-03-19 22:02
2007.09.09
Память процесса


4-1173419575
Интересующийся
2007-03-09 08:52
2007.09.09
Завершение работы Windows


3-1178971005
kind_shubin
2007-05-12 15:56
2007.09.09
Как прописать


9-1159926882
VolanD666
2006-10-04 05:54
2007.09.09
Сглаживаем тени?


2-1187077994
Krants
2007-08-14 11:53
2007.09.09
DBGrid фон активной ячейки