Автор Тема: Error Creating cursor handle - что цэ таке?  (Прочитано 1799 раз)

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

mn

  • ***
  • Сообщений: 8168
    • Просмотр профиля
#0: 24 Октября 2004, 17:12:45
Кто мож подскажет:::

Ситуэйшн такой: посылается SQL запрос из клиента (сервер IB 6.0 локально, клиент пишется на Дельфи(4)) на добавление записи, а вылазит вот такая ошибка: \"Error Creating cursor handle\", хотя запись физически добавляется.
В IBConsole, если выполнять тот же SQL запрос, ошибки не возникает.

Вопрос в следующем: Что подкрутить, чтобы не было данной ошибки?

masa

  • Гость
#1: 24 Октября 2004, 18:59:06
Поподробнее. Что за запрос? Каким компонентом пользуешься и из какой библиотеки?

mn

  • ***
  • Сообщений: 8168
    • Просмотр профиля
#2: 25 Октября 2004, 10:06:46
Пользуюсь компонентом Query, c базой соединяюсь ч/з компонент Database
запрос типа:
\"insert
into xxx (`yyy`)
values (`zzz`)\"
коннектится нормально, когда Квери присваиваю Active:=True вылазит ошибка.
Компоненты все стандартные для Delphi4

Нахухоль

  • ***
  • Сообщений: 1720
    • Просмотр профиля
#3: 25 Октября 2004, 11:47:05
Так ты, получается, из Дельфы работаешь с ИБ-сервером через БДЕ?

Если так - проблема может быть в этом. Д4 неприспособлена для нормальной работы с ИБ стандартными средствами (всегда через БДЕ). В версии 5 уже появилась закладка компонентов для работы с ИБ, но она тоже местами косячит, ее надо дополнять из IBExpress. Эти компоненты позволяют исключить БДЕ(вместе с ее косяками) и работать напрямую.

Именно поэтому (имхо) через IBConsole у тебя все нормально. IBConsole работает напрямую, а твое клиентское приложение через БДЕ. Я неправ?

нах.


mn

  • ***
  • Сообщений: 8168
    • Просмотр профиля
#4: 25 Октября 2004, 12:07:05
2 нах
BDE на компе стоит, но при конфигурировании/настройки БД и клиента, сам BDE я не использую, мож Дельфя его сама прикручивает при организации доступа к БД??!

ээх, придётся искать версию 5 или_выше...(Гладиатор, Универмаг - нету)

Нахухоль

  • ***
  • Сообщений: 1720
    • Просмотр профиля
#5: 25 Октября 2004, 12:47:02
(Гладиатор, Универмаг - нету)
---------------------------------------------

Оччччннннь странно......
Ну, готовь болванку, я те запишу.
Связь - мылом.

нах.

mn

  • ***
  • Сообщений: 8168
    • Просмотр профиля
#6: 25 Октября 2004, 14:19:51
2 нах
в Радуге токо что надыбал Delphi 5.0 Enterprise Edition, ты говорил, что есть у тебя СП1, СП2 на Delphi5...?

ЗЫ: смотри в мыльник.

mn

  • ***
  • Сообщений: 8168
    • Просмотр профиля
#7: 26 Октября 2004, 09:57:39
ПОЛУЧИЛОСЬ!!!!
поставил Д5, добавил компоненты ibdadabase, ibquery, ibtransaction - вроде работает.
спасибо за советы.

maga

  • Гость
#8: 27 Октября 2004, 22:29:52
mn:
когда Квери присваиваю Active:=True вылазит ошибка.
--------------
Вообщето когда используешь insert, delete ... нужно делать Query.ExecSQL;
При select ... пиши Query.Open; для запуска запроса и Query.Close; при закрытии.
Хотя при select можно как ты и писал: Query.Active:=True;

masa

  • Гость
#9: 27 Октября 2004, 22:31:36
maga т.е. masa. Очепятка в нике. ;-)

Нахухоль

  • ***
  • Сообщений: 1720
    • Просмотр профиля
#10: 28 Октября 2004, 09:09:37
To mn:

Ну что, ошибка-то исчезла?

----------------------------------------------------
ibdadabase, ibquery, ibtransaction - вроде работает
----------------------------------------------------
Работать-то оно будет, куда денется.....
Но разработчики IB не советуют использовать IBTable и IBQuery.
Если только для \"плавного\" перехода с BDE.
Далее все равно надо стремиться использовать связку
IBDatabase-IBTransaction-IBDataSet-DataSource-DBGrid.

Все запросы, которые у тебя щас выполняются в IBQuery
будут выполняться в IBDataSet.SelectSQL (это на чтение из базы)
и IBDataSet.ModifySQL (это на запись в базу).



За сервис-паками придешь?

нах.

mn

  • ***
  • Сообщений: 8168
    • Просмотр профиля
#11: 29 Октября 2004, 11:08:16
2 нах
да, обшибки уже нет, сделал всё как и говорил выше, но Ваши замечания приму во внимание.
за сервис паками приду, как только забиру свою флэшку - сразу отмылю.

спасибо всем за советы.

Vlad

  • Гость
#12: 29 Ноября 2004, 00:56:44
При заполнении Query1.SQL.TEXT:=`INSERT INTO DB.DB (D,D)
Values (`vasya`,`petya`);`
При вызове Query1.Open - не работает;
Query1.execute или Query1.execSQL
причем тоже с Update b Delete