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

Вниз

ADO для Firebird ?   Найти похожие ветки 

 
sohat   (2004-01-22 09:01) [0]

Как мне поиметь доступ к Firebird через ADO? Может у кого есть опыт такой работы. Мне насоветовали ODBC драйвер, но с ним открываются только пустые таблицы, если в таблице есть хоть одна запись, вываливается ошибка "Неизвестная ошибка".


 
Term ©   (2004-01-22 10:03) [1]

а нафига стото мудрить, если есть компаненты прямого доступа, IBX, FibPlus, чем они тебя не устраивают


 
jack128 ©   (2004-01-22 10:12) [2]

ИМХО можно, но для этого тебе нужен ole db provider для ib. Такие существуют. Так что ищите и обрящите(с)


 
sohat   (2004-01-22 10:37) [3]

А нафига мудрить с IBX и FibPlus, когда есть ADO ?

Нашел дрова для ADO на http://zstyle.dp.ua/rus/iboledb_prod.htm, но присутсвует некий глюк - Таблички открываются нормально но редактировани запроса типа select * from tablename не работает, сервак возвращает ошибку "Dinamic SQL Error error code = -104 Token unknown, line -1 char 8 Tablename". Хотя если все городить через TClientDataSet то все работает, как сделать, чтобы работало без него (TClientDataSet).
p.s. Очень большая просьба ответить по сущществу.


 
Johnmen ©   (2004-01-22 10:42) [4]

По существу:
Можно плавать и на бревне, но на лодке лучше. Во всех смыслах.


 
sohat   (2004-01-22 11:08) [5]

ну вот, философия поперла. Я же сказал что мне так нужно, ну зачем тогда вообче ADO драйвера пишутся (только не говорите мне, что для таких как ты :) ).
Есть некий инструмент, который должен работать с разнородными базами начиная от dbf и кончая MSSQL и что, я должен на все ставить свои компоненты и при необходимости переключаться между ними?


 
Danilka ©   (2004-01-22 11:13) [6]


> [3] sohat (22.01.04 10:37)
> работает, сервак возвращает ошибку "Dinamic SQL Error error
> code = -104 Token unknown, line -1 char 8 Tablename". Хотя

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

>ну вот, философия поперла
Добавлю до кучи: "некий инструмент" можно научить пользоваться не только адо но и спец. компонентами.
:))


 
Johnmen ©   (2004-01-22 11:14) [7]

Ну извини...


 
sniknik ©   (2004-01-22 11:20) [8]

ну так поставь поля явно, он же тебе говорит что не может определить символ *. на каком этапе глюк это еще проверять надо но на пока
select fieldname1, fieldname2, .... from tablename

Danilka © (22.01.04 11:13) [6]
хочеш сказать символ 8 - * зависит от кодовой страницы?
(это вопрос а не прикол, сталкиваться с IB почти не приходилось)


 
sohat   (2004-01-22 11:24) [9]

Нет, с английским тоже не работает. Да и кодовую страничку менял (до этого уже дошел). Меня удивляет почему все это через TClientDataSet работает.

до кучи: если появится новая СУБД придется перекомпилить прогу с добавлением спец. компонентов. А для ADO дрова наверняка появятся (хоть и глючные :))) )


 
sohat   (2004-01-22 11:27) [10]

явная подстановка полей тоже не помогает.


 
Danilka ©   (2004-01-22 11:36) [11]

[8] sniknik © (22.01.04 11:20)
хм, действительно, попутал, у меня по-другому ругается, когда неуказана кодовая страница.

может, драйвер кривой?

попробуй вот-этот:
http://www.xtgsystems.com/linux/ofbodbc/download.php
я работал через него с фиребирдом из жаба-скриптов - никаких проблем небыло.


 
sniknik ©   (2004-01-22 11:38) [12]

а что теперь говорит? на какой символ по счету ругается?

смотри у меня запрос (этот же провайдер, 5 бесплатная весия по ссылке)
select * from tablename
работает
а
select * from [tablename] (по аналогу с MSSQL для нестандартных имен)
ошибка
EOleException : Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 14
ничего не напоминает? а теперь считай символы с начала запроса 14 = [ (в IB вместо них нужно "")


 
sniknik ©   (2004-01-22 11:40) [13]

кстати
мое Token unknown - line 1, char 14
твое Token unknown, line -1
или опечатка или в линии до запроса ругань.


 
Danilka ©   (2004-01-22 11:54) [14]

sniknik ©
точно! смотрю - что-то ошибка знакомая до-боли, а что знакомого - непойму. :))
SQL error code = -104 - неправильный синтакс запроса. :)) возможно, используются зарезервированные слова.


 
}|{yk ©   (2004-01-22 12:07) [15]

Не юзай ADO. Возьми лучше ZeosLib. Он может подключаться ко многим SQL - серверам, не зависит от прихотей Microsoft и имеет доступные исходники


 
sohat   (2004-01-22 12:34) [16]

Я использую обновляемый запрос типа select * from tablename. Запрос работает нормально. Ошибка озникает если я пытаюсь изменить запись в гриде. Такое ойщещение что не драйвера глючат а TADODataSet.


 
sniknik ©   (2004-01-22 12:57) [17]

не может быть, если бы TADODataSet глючил то весде, если бы драйвера то тоже у многих, а так, у меня не глючат.

драйвер из ссылки ".... бесплатную версию 5"
строка подключения
Provider=IBOLE.Provider.v4;Password=masterkey;Data Source=:D:\DB\TESTR.GDB;Persist Security Info=True
база в 3м диалекте
запрос
SELECT * FROM BAR3D
в датасет, "живой" (обновляемый)
в гриде редактируется без проблем, и новые добавляются и старые редактируются.

вывод, глючит чтото у тебя. что, это только ты знаеш но нам не говориш (знаеш наверняка, может не понимаеш, но возникающие ошибки прямое указание на глюки, та что была показана была здесь разобрана(не так ли?) "неверный символ в запросе" ). не показываеш остальное, ну и сиди с глюком (и ZeosLib не спасет там будет аналогично (не анологичный глюк а аналогично по ситуации)).


 
sohat   (2004-01-22 17:06) [18]

знал бы сказал :))) я вообще пустой проект слепил, специально чтобы попробовать, там и глючить то нечему. А если дрова глючат, то скажите пожалуйста, почему через TClientDataSet все работает?


 
sniknik ©   (2004-01-22 17:50) [19]

аналогично сделал пустой проэкт, для проверки.

> почему через TClientDataSet все работает?
не знаю для IB (говорил уже, работать с ним приходилось очень мало), а вот для MSSQL могу посоветовать небольшой тест (для прояснения ситуации).
собираеш всю конструкцию ADOConnection .... DataSetProvider, ClientDataSet
и открываеш Profiler, дальше делаеш запрос из ClientDataSet и смотриш что пришло на самом деле, а самом деле запрос может прийти совсем не такой как от ADODataSet.
и не надо говорить что глюк у тебя на редактировании а не на запросе, на редактировании запросы тоже могут различатся.
(просто не знаю есть ли в IB/Firebird инструмент аналогичный Profiler)

> я вообще пустой проект слепил
и слепил его единственным 100% верным способом конечно.
вот прочитай ветку где абсолютно аналогичный код скопированный отсюда же, оказавается не настолько уж и анологичен а скорее аллогичен
http://delphimaster.net/view/1-1074761857/
а что тогда говорить о твоем тайном коде?

> А если дрова глючат
кто такое говорил? я наоборот говорил что у меня они работают, а ты даже версию не сказал, то ли они что и у меня.

> знал бы сказал :)))
нет не говориш, информация только у тебя, а ее ты не сообщаеш (кроме поста > sohat (22.01.04 10:37) [3]), но это я так подозреваю решилось? ошибка уже другая, если нет то где ответ например на это > sniknik © (22.01.04 11:38) [12] ? или тест этого > Danilka © (22.01.04 11:36) [11] ? долго драйвер поставить? или решения ждеш на блюдечке с голубой каемочкой?
так вот оно, решение
http://ln.com.ua/~openxs/articles/smart-questions-ru.html



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

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

Наверх




Память: 0.52 MB
Время: 0.036 c
1-38859
Алексей
2004-02-02 07:20
2004.02.13
Русификация MessageDlg


14-39058
talisman
2004-01-07 15:19
2004.02.13
ИК-портом телевизор


7-39111
KyRo
2003-11-27 00:41
2004.02.13
Платформа Microsoft.Net


7-39103
Artem03
2003-11-28 14:49
2004.02.13
Занят (открыт) файл (txt, xls и пр.) или нет.


1-38913
h0use
2004-02-04 14:08
2004.02.13
Передача параметров через SendMessage