Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Непонятки с dbExpress для MS SQL.
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Извините за столь подробное изложение - наболело. Кто работает с MS SQL через dbExpress, поделитесь опытом, пожалуйста. Я перехожу с BDE на dbExpress. Партия сказала "надо", народ ответил - "есть". Для этого скачал я обновлённую версию драйвера dbexpmss, в которой якобы устранены проблемы с пустыми юзерами/паролями в параметрах SQLConnection. Но без юзера и пароля, что во все времена, в BDE по крайней мере, означало лишь одно - Windows Authentication, как не соединялось, так и не соединяется. Видимо проблему устранили, но криво. Если раньше ругалось "error maping file" - какая-то внутренняя ошибка драйвера, то теперь "login failed for user '(null)'" - пытается видимо соединяться. Чего делать-то? В dbExpress, что, принципиально не поддерживают SQL Authentication? Но это ладно, потерпим. Беспокоит другое - упорное желание заставить моих юзеров работать со схемами имени их же. Т. е. процедуру [dbo].[proc_name] не знаем, её параметров тоже, подавай [user].[proc_name]. Но у меня в БД одна схема - dbo. А что же остальным делать? Где логика? Смотрю в профайлере, и слёзы капают - Код: plaintext 1. 2. Куда это годится? Зачем там "N'user'"? Ведь указано же - "dbo". Должно быть так - Код: plaintext 1. 2. Такое впечатление, что делалось всё в попыхах, и толком не тестировалось. Сервер со схемами объектов в запросах разбирается умнее - если она не указана, то объект ищется в схеме текущего юзера, и если такого нет, то поиск продолжается в схеме dbo, а если указана, так и разнотолков не возникает. Тут нет - всё равно лезет в схему текущего юзера, не находит там, ну и не надо. Видимо из-за этого ломается при выполнении процедур с параметрами - пишет "List index out of bounds(0)". Как заставить работать этот, чтоб ему, dbExpress? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 16:31 |
|
||
|
Непонятки с dbExpress для MS SQL.
|
|||
|---|---|---|---|
|
#18+
Да, из-за некоректного обращения dbExpress со схемами объектов нельзя выполнить процедуру из схемы, отличной от схемы текущего юзера. Даже если создал параметры вручную, и явно указал хозяина процедуры, dbExpress перед выполнением ещё раз запрашивает информацию о параметрах из схемы текущего юзера. Не находит и ломается. Что за глупости?!?! Зачем этот лишний трафик?! Ведь я точно знаю, что и как буду вызывать. Млин, и это Борланд?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 17:27 |
|
||
|
Непонятки с dbExpress для MS SQL.
|
|||
|---|---|---|---|
|
#18+
Господа, неужели никто не сталкивался с такими проблемами? Хоть соображения или замечания свои выскажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 19:30 |
|
||
|
Непонятки с dbExpress для MS SQL.
|
|||
|---|---|---|---|
|
#18+
Я так и не понял - какие конкретно проблемы? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 19:41 |
|
||
|
Непонятки с dbExpress для MS SQL.
|
|||
|---|---|---|---|
|
#18+
Если выше по тексту не конкретно, то прошу прощения. Проблемы две: 1. Не соединяется по Windows Authentication. 2. Не выполняются процедуры из "неродной" схемы юзера, от имени которого осуществлено подключение. Подробнее см выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 09:36 |
|
||
|
Непонятки с dbExpress для MS SQL.
|
|||
|---|---|---|---|
|
#18+
1. Не соединяется по Windows Authentication Врешь, соединяеться. Выставь в параметрах TSQLConnection значение OS Authentication в TRUE. 2. Не выполняются процедуры из "неродной" схемы юзера, от имени которого осуществлено подключение. В свойствах компонента доступа установи значение свойства Shema в соответствии с владельцем, обычно dbo. И параметры руками не надо будет прописывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 13:01 |
|
||
|
Непонятки с dbExpress для MS SQL.
|
|||
|---|---|---|---|
|
#18+
2 pkarklin>> Пожалуйста, поподробнее изложите, что нужно сделать. Может у Вас свой способ? OS Authentication=True, user/password можно удалить совсем, можно оставить пустыми, результат один - <<SQL State: 42000, SQL Error Code: 18456 Login failed for user '(null)>> И у какого компонента доступа есть свойство Shema? А параметры я руками не прописываю. TSQLStoredProc создаю во время исполнения, в коде же и создание параметров. Скачал сторонний драйвер - dbexpsda.dll. У него пока таких проблем не замечено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 16:27 |
|
||
|
Непонятки с dbExpress для MS SQL.
|
|||
|---|---|---|---|
|
#18+
OS Authentication=True этого достаточно. Может у тебя на сиквеле Mixed Mode включен, а не Windows Only? у какого компонента доступа есть свойство Shema? А параметры я руками не прописываю. TSQLStoredProc создаю во время исполнения, в коде же и создание параметров. У TSQLStoredProc. А для параметров достаточно вызвать метод Refresh. И зачем ты все это в коде создаешь?! Положил в DT на модуль стока хп, скока надо, установил свойства. А потом в коде тока устанавливай параметры и вызывай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 16:49 |
|
||
|
Непонятки с dbExpress для MS SQL.
|
|||
|---|---|---|---|
|
#18+
To pkarklin>> Миксед-мод включен. Так и надо. А какое это имеет значение? В BDE проблем не было с Windows Authentication, да и, как я уже сказал, "чужой" драйвер соединяется без проблем. Правда у него тоже "заморочки" с параметрами хр. процедур из чужих схем. Указаное свойство нашёл, только не то и не там. В Delphi это называется SchemaName. Оно? Но вся беда, что я работаю в Builder, и там (!!!) такого свойства нет! Очень интересно. Есть метод SetSchemaInfo(). Наверно про это. Буду разбираться. Про создание всего в коде: мне показалось, что так удобнее и правильнее, т.к. процедур за 500, всё сразу глупо создавать - львиная доля не понадобится, создаю по мере необходимости, а задавая параметры вручную избавляю сервер и сеть от лишних нагрузок. Тут ещё один казус выявился - нельзя передать в процедуру null. В BDE было просто - не присваиваешь ничего, или сделаешь Clear() - значение параметра null, а тут нет, для строки даже если явно задашь Value.Type = Null, то для строкового параметра передаётся '', для integer - 0, и т.д. С этим-то как быть? И про соединение что можете сказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 19:05 |
|
||
|
Непонятки с dbExpress для MS SQL.
|
|||
|---|---|---|---|
|
#18+
Прошу у всех прощения, вопрос был задан не в том форуме. :-\ В Delphi всё работает как надо. Виновата реализация классов dbExpress в Builder. Очень странно, что есть какие-то отличия, ведь всю жизнь vcl в Builder представлял собой несколько заголовочных файлов, эдакую прокладку-переходник, а всё остальное было реализовано на паскале, и было анологично соответствующим классам, переменным, функциям и процедурам Delphi. Или dbExpress уже не vcl? Хотя всё-равно, почему есть отличия? Ну будем брать C++BuilderX, в надежде, что там всё путём. А про вызов процедур с null-параметрами, кто что сказать может? (см. пред. с.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 20:34 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32296944&tid=2116389]: |
0ms |
get settings: |
9ms |
get forum list: |
27ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 257ms |
| total: | 404ms |

| 0 / 0 |
