Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

3 диалект и BDE 


dialectic   (2002-04-05 09:22) [0]

Скажите, а возможно ли работать с 3 диалектом используя BDE?
В таблицах есть поля Numeric(18,2)



dymka   (2002-04-05 09:47) [1]

Можно, если имена полей базы не type итп новые введеные слова...
Если не используешь поля типа Date, Time итп...
Почитай отличия в диалектах на http://ib.demo.ru



dialectic   (2002-04-05 10:06) [2]

Проблема не в именах полей, они у меня никогда так не называются. Проблема в том что BDE ругается на Integer64 встречая поля Numeric(19,2)



Lusha   (2002-04-05 10:16) [3]

>dialectic
BDE не интересно с каким диалектом Вы работаете. Это интересно непосредственно серверу с которым Вы работаете...

Ругательство, как я понимаю, происходит непосредственно в коде при обращению к полю...
Может Вы его (код) нам все же продемонстрируете?



dialectic   (2002-04-05 10:41) [4]

>Lusha
Получается что BDE как раз интересно.
Имеем:
1.Fbird Server
2.База данных созданная в 3 диалекте
3.Таблица с полем NUMERIC(18,2)
4.Экземпляр TQuery (select * from эта таблица)
5.Метод Open, возвращающий: "диалект 1 не поддерживает 64 разрядный тип данных для нумерик полей"



Romkin   (2002-04-05 10:48) [5]

BDE не работает с третьим диалектом, просто не поддерживает.
И типы данных ей очень не безразличны - сразу идут ошибки на numeric, Time, Date
Пользуйтесь прямым доступом, так оно и быстрее будет



Lusha   (2002-04-05 11:20) [6]

>dialectic
А если создать список полей в Query в Design Time, то BDE предлагает какой тип для этого поля?



dialectic   (2002-04-05 12:41) [7]

>Lusha
Не строит он список полей ни в дизайне ни в рантайме.
FieldDefs.Update вызывает exception.



Lusha   (2002-04-05 12:45) [8]

Понятно. И все равно настаиваю, что BDE тут не причем. Вот ODBC драйверок, похоже, кривоват. Это его обязанность вернуть типы полей...



dialectic   (2002-04-05 12:46) [9]

А при чем тогда здесь ODBС? Вы про что вообще?



Lusha   (2002-04-05 12:56) [10]

Хорошо. Признаюсь, что я не знаю, что такое FBird. Вот Вы мне и объясните, дураку, как осуществляется связь Вашего приложения с сервером. По пунктам, пожалуйста...

1. Ваше приложение вызывает функцию BDE
2. Функция BDE вызывает...



dialectic   (2002-04-05 13:00) [11]

FireBird это клон Interbase.
1.Приложение использует BDE.
2.BDE использует клиента FB.
3.Никто не использует ODBC



Lusha   (2002-04-05 13:01) [12]

Напрямую обращается к клиенту сервера? Ой, ли? Вы Alias как настраивали?



Johnmen   (2002-04-05 13:10) [13]

>Lusha © : В данном случае Приложение->BDE->клиент FB->сам FB.
>dialectic : Не используй 3 диал., зачем ?



Lusha   (2002-04-05 13:16) [14]

>dialectic
Используются компоненты закладки Interbase?



dialectic   (2002-04-05 13:22) [15]

>Johnmen
3 диалект выбран только из-за того что Borland не гарантирует дальнейшую поддержку первого диалекта

>Lusha
Я уже сказал что за компоненты используются



Lusha   (2002-04-05 13:27) [16]

>dialectic
Может все таки скажете как настраиваете Alias?

>Johnmen
А может все таки BDE->SQL Link->клиент FB->сам FB?



Fareader   (2002-04-05 13:33) [17]

Пока не поздно (в смысле пока много работы не сделано) на IBX, IBO или FIBPlus компоненты.



dialectic   (2002-04-05 13:34) [18]

>Lusha
Наверное разочарую Вас, но алиаса у меня нет

with dbInterbase do
begin
DriverName:="INTRBASE";
Session.GetDriverParams(DriverName,Params);
Params.Values["SERVER NAME"]:="C:\......gdb";
Open;
end;



Lusha   (2002-04-05 13:47) [19]

>dialectic
Не разочаровали, батенька, обрадовали. Вы используете SQL Link.
По своей сути это ODBC драйвер просто нестандартным образом (не в секции ODBC)зарегистрированный в системе. Вот неправильно работает ОН, а не BDE. Выход - попробовать использовать родной ODBC драйвер FB или прислушаться к уже высказанным в этой ветке советам...



dialectic   (2002-04-05 13:56) [20]

>Lusha
Я очень рад что Вы обрадовались, но у меня не установлено НИ ОДНОГО ODBC драйвера от какого бы то ни было вендора ODBC драйверов для IB, FB или Yaffil.
Не расскажете как я при этом вообще умудряюсь работать с сервером?



Lusha   (2002-04-05 14:03) [21]

С удовольствием расскажу. Используемый Вами драйвер - SQLINT32.DLL

Вы его проставили, когда при инсталляции Delphi ЯВНО попросили установку SQL Links.



dialectic   (2002-04-05 14:10) [22]

Это велосипед или Америка?
Следует из этого что я использую ODBC?



Lusha   (2002-04-05 14:14) [23]

>Это велосипед или Америка?
Следует. Просто разработчик этого драйвера фирма Borland и зарегистрирован он, скажем так, своеобразно...



Johnmen   (2002-04-05 14:27) [24]

>dialectic : Хотелось бы уточнить, чем тебя пугает обещанная Борландом неподдержка в дальнейшем 1 диал. (конкретно) ?
>Lusha © : Естественно, в этой цепи есть SQL Link ...



dialectic   (2002-04-05 16:31) [25]

Вопрос снят.
Все работает с версией BDE от Delphi 6.
Причем простая замена "своеобразно зарегистрированого ODBC драйвера" sqlint32.dll не помогла.



Lusha   (2002-04-05 16:40) [26]

>Причем простая замена "своеобразно зарегистрированого ODBC >драйвера" sqlint32.dll не помогла.

Интересно какая это для Вас на сегодня Америка. Первая или вторая?



dialectic   (2002-04-05 16:48) [27]

Вы мне пытались доказать что BDE здесь не причем.
Виноват драйвер SQL Link.
Заменил я драйвер. Проблема осталась.
Заменил еще и BDE - проблема исчезла.

Комментарии ?



Johnmen   (2002-04-05 16:57) [28]

>dialectic : комментарии : Lusha © сказал правильно, а то, что ты не удосужился обновить версию BDE, это твоя ошибка.
И раз работает с этой версией BDE , значит BDE непричем !



Lusha   (2002-04-05 17:06) [29]

Попробую покороче. Практически у каждой проблемы всегда имеются, как минимум, два решения. И данная не исключение. Первый - изменить драйвер. Второй - изменить BDE. Можете себе представить, ребята из Borland воспользовались вторым...?

Кстати. А какая версия BDE идет в поставке с Delphi 6? Какие новые типы производные от TField появились в Delphi 6?



Reindeer Moss Eater   (2002-04-05 17:14) [30]

>Johnmen и Lusha
Я не сегодня родился и не сегодня узнал что такое BDE и SQL Links.
Сначала мне упорно пытаются доказывать что BDE не причем.
Затем рассказывают что драйвер SQL Links для IB - это обычный драйвер ODBC
Далее:
Я начинаю использовать другой драйвер ODBC (хороший).
Выясняется, что хоть sqlin32.dll и простой ODBC драйвер, но использовать его в BDE 5.1 нельзя.

И после этого Johnmen снова утверждает, что BDE не виноват.



Lusha   (2002-04-05 17:18) [31]

>Reindeer Moss Eater
>Затем рассказывают что драйвер SQL Links для IB - это обычный
>драйвер ODBC

Докажите обратное...


>И после этого Johnmen снова утверждает, что BDE не виноват.

Да не виноват.







Johnmen   (2002-04-05 17:24) [32]

>Reindeer Moss Eater : Это фактически утверждает dialectic (05.04.02 16:48)
>Заменил еще и BDE - проблема исчезла.
То есть BDE не виноват, он работает, а виновата старая версия его !



Alik Chu   (2002-04-05 17:26) [33]

Прошу прощения.

О Боже! Ну как в этой стране люди любят гордится своими достижениями и познаниями!.. Еб..тся!

- Проблему решили?
- ДА!

Ну, а зачем спорить на тему: "Кто самый умный и красивый?"



dymka   (2002-04-05 17:27) [34]

у меня все работало, хотя читал что нельзя использовать BDE для диалекта 3...
BDE от шестой дельфы...
еще раз повторю - нужно знать отличия.. если отличий по диалектам нет, то какая разница для бде...



dymka   (2002-04-05 17:30) [35]

2 Alik Chu - не соглашусь с тобой...
даже если работает, то продолжение "разборок" позволяет лучше понять тонкости работы, если и не спорящим, то хотя бы остальным... мне, ламеру, такое очень интересно...



Reindeer Moss Eater   (2002-04-05 17:32) [36]

Lusha>
1.Допустим BDE не причем. И все дело в sqlint32.dll идущим с D5.
2.Идем на машину с D6 и с новым sqlint32.dll и убеждаемся, что можем работать с диалектом 3.
3.Уносим хороший ODBC драйвер и начинаем использовать в BDE 5.1
(никакого же криминала нет - это же обычный 32 разрядный ODBC драйвер, его хоть в D2 можно использовать)
4.Убеждаемся что этого мало. И требуется обновить еще и BDE, хотя ему вроде наплевать на диалект.



Lusha   (2002-04-05 17:54) [37]

Вы так и не ответили на мои вопросы. У меня нет Delphi 6, если Вы еще не поняли...



Reindeer Moss Eater   (2002-04-05 18:00) [38]

В Delphi 6 версия BDE 5.2.
Хотя какое это может иметь значение в свете сказанного

>Lusha © (05.04.02 12:45)
"Понятно. И все равно настаиваю, что BDE тут не причем. Вот ODBC драйверок, похоже, кривоват. Это его обязанность вернуть типы полей... "



Lusha   (2002-04-08 10:06) [39]

Reindeer Moss Eater

>В Delphi 6 версия BDE 5.2.
>Хотя какое это может иметь значение в свете сказанного

Абсолютно никакого. У меня нет Delphi 6, а в пятницу не было никакой возможности выйти на сайт Borland, поэтому спросил у Вас... Больше не буду... :)

Теперь по делу... Я сходил, на сайт Borland и не нашел там ни единого упоминания о каких либо ограничениях связанных с третьим диалектом Interbase... Из чего я делаю заключение, что все должно работать и на BDE 5.1.1.

На Вашем месте я бы проверил следующее...
1. Наличие среди настроечных параметров драйвера Interbase следующих параметров: COMMIT RETAINING, WAIT ON LOCK, ROLE NAME. Эти параметры не устанавливаются дистрибутивом Delphi 5 и разработчики просят добавлять их "ручками" после инсталляции.

2. Возможно также, что при инсталляции BDE была заменена библиотека gds32.dll версии 5 на версию 4.2.1. Вряд ли конечно, но проверить не мешает...





Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.79 MB
Время: 0.029 c
1-94455           DimNK                 2002-04-13 13:26  2002.04.29  
Создание формы


1-94361           ALM                   2002-04-17 12:51  2002.04.29  
Странное дело, однако...


3-94273           КСА                   2002-04-08 11:25  2002.04.29  
Дайте кто-нибудь пожалуйста IB 5.6


14-94549          Nest                  2002-03-21 14:42  2002.04.29  
Как сделать недоступными некоторые items в TListBox? Или есть другой компонент с такой фичей?


7-94594           ATLANTIDO             2002-02-02 23:58  2002.04.29  
ШАРИТЬ ПО ДИСКАМ ЗАПРЕЩЕНО