Ошибка в Rowset.execute()

Автор ishayahu, 29 мая 2011, 15:12

0 Пользователи и 1 гость просматривают эту тему.

ishayahu

Добрый день, это опять я)
Почему-то вылетает ошибка в следующем коде...
DatabaseContext = createUnoService ("com.sun.star.sdb.DatabaseContext")
ITBase = DatabaseContext.getByName ("IT")
REM Выбираем действующие принтеры
QueryP="SELECT КодАктива, Модель FROM Активы WHERE КодКатегорииАктива = 0 AND КодСтатуса= 0 ASC"
RowSet = createUnoService("com.sun.star.sdb.RowSet")
RowSet.DataSourceName = "IT"
RowSet.Command = QueryP
RowSet.execute()

Подскажите, пожалуйста, в чем ошибка!
Макрос lib/SelectSuitableCartrige

[вложение удалено Администратором]
WinXP - OO3.3/LibreOffice3.3

RFJ

Ошибка в запросе:

SELECT КодАктива, Модель FROM Активы WHERE КодКатегорииАктива = 0 AND КодСтатуса = 0 ASC

В таблице Активы нет полей КодКатегорииАктива и КодСтатуса!

ishayahu

пришел домой, запустил на LibO 3.3 - выдало сперва ошибку SQL синтаксиса. Изменил тектс запроса на QueryP="SELECT КодАктива, Модель FROM Активы WHERE КодКатегорииАктива = 0 AND КодСтатуса= 0" - отработало нормально. На 3.4 не работает ни так ни так. Но, на всякий случай, когда приду на работу - проверю.

Отправил баг: https://bugs.freedesktop.org/show_bug.cgi?id=37720
WinXP - OO3.3/LibreOffice3.3

ishayahu

ЦитироватьВ таблице Активы нет полей КодКатегорииАктива и КодСтатуса
Есть, просто они были скрыты)) Извиняюсь, что забыл предупредить)

[вложение удалено Администратором]
WinXP - OO3.3/LibreOffice3.3

RFJ

#4
ASC -!!!

QueryP="SELECT КодАктива, Модель FROM Активы WHERE КодКатегорииАктива = 0 AND КодСтатуса= 0 ORDER BY Модель ASC"

http://hsqldb.org/doc/2.0/guide/sqlgeneral-chapt.html#N1082E

PS. Работает и на LO 3.4

ishayahu

Странно, работает.. но не работало( Видимо, что-то еще проглядел))
Извиняюсь за беспокойство)
WinXP - OO3.3/LibreOffice3.3

ishayahu

И все равно глюк... На 3.3 запрос выдает результат, а тут нет( Тот же самый файл на 3.3 выдает в качестве результата 3-4 значения, а в 3,4 ни одного. По крайней мере сразу перескакивает
while RowSet.Next
ReDim Preserve PrintersI(x)
ReDim Preserve PrintersN(x)
PrintersI (x) = RowSet.getString(1)
PrintersN (x) = RowSet.getString(2)
x=x+1
wend


[вложение удалено Администратором]
WinXP - OO3.3/LibreOffice3.3

RFJ

RowSet работает и на 3.3 и на 3.4:

while RowSet.Next
ReDim Preserve PrintersI(x)
ReDim Preserve PrintersN(x)
PrintersI(x) = RowSet.getString(1)
PrintersN(x) = RowSet.getString(2)
x=x+1

MsgBox x & Chr(9) & RowSet.getString(1) &  Chr(9) & RowSet.getString(2)

wend

ishayahu

Ну не работает! Прохожу с F8 и спокойно проскакивает цикл...(((
Ума не приложу в чем может быть дело... Причем дома тот же скрипт работал без проблем((

Попробую еще как-нибудь после перезагрузки компа проверить...
WinXP - OO3.3/LibreOffice3.3