Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PostgreSQL + OOo Basic, Ошибка при добавлении записи. 
V
    Опции темы
Varyagnord
Дата 14.10.2010, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.11.2009

Репутация: нет
Всего: нет



Добрый день!
Ситуация такая.
Имеется база Postgres. К ней подключен ОpenОffice.org 3.2.1 через ODBC.

Пытаюсь выполнить такой макрос:

Код

SUB create_case
DIM oSql AS STRING
DIM word AS STRING
DIM oResult AS Object
DIM oStatement AS Object
DIM db AS object
word = "Блаблабла"
db = connect_to_database ("Erudit_Base")
oSql = "INSERT INTO ""Slovar"" (""slovo"") values ('" & word & "')"
oStatement = db.createStatement
oResult = oStatement.executeQuery (oSql)
disconnect_from_database (db)
END SUB


Имеется проблема.

При попытке его выполнения получаю такую ошибку:

Цитата

Ошибка времени выполнения BASIC.
Вызвано исключение.
Type: com.sun.star.sdbc.SQLException
Запрос не вернул допустимого набора значений.


При этом требуемая запись в базе появляется...

Это сообщение отредактировал(а) Varyagnord - 14.10.2010, 00:06
PM MAIL   Вверх
LSD
Дата 14.10.2010, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Потому что INSERT это не Query, потому и SQLException. А как правильно выполнять INSERT в VB спроси в разделе про VB.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Varyagnord
Дата 14.10.2010, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.11.2009

Репутация: нет
Всего: нет



Спасибо. smile

В таком случае может быть можно перенести тему в тот раздел, чтобы мне не создавать её второй раз smile
PM MAIL   Вверх
Varyagnord
Дата 14.10.2010, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.11.2009

Репутация: нет
Всего: нет



Спасибо всем кто заглядывал в тему и думал как можно помочь.

Вопрос решился после прочтения статьи на википедии про оператор INSERT.

Вот как я это решил может кому пригодится.

Код

SUB create_case
DIM oSql AS STRING
DIM word AS STRING
DIM oResult AS Object
DIM oStatement AS Object
DIM db AS object
word = "Блаблабла"
db = connect_to_database ("Erudit_Base")
oSql = "INSERT INTO ""Slovar"" (""slovo"") values ('" & word & "') RETURNING oid"
oStatement = db.createStatement
oResult = oStatement.executeQuery (oSql)
disconnect_from_database (db)
END SUB


Решилось добавлением к запросу RETURNING oid. В таком случае запрос вставит строку и вернет значение. Я возвращал id строки ))

Вот тут в конце статьи можно почитать по этой теме.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0411 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.