powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Delphi+MS SQL без BDE?
18 сообщений из 18, страница 1 из 1
Delphi+MS SQL без BDE?
    #32020094
Aleksandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существует ли на свете компоненты Delphi для прямого доступа к MS SQL?
Пока работал через BDE, но говорят что он тормозит. И тут я решил сравнить.
Было протестировано: ADO, SQLDirect*, SQLQuery* (*были скачаны Trial-версии с сайтов разработчиков)
Были получены следующие результаты:
ADO - глючит сразу при открытии (все советы из Инета не помогли)
SQLDirect - открылся нормально, но при попытке выполнить ApplyUpdate, происходит внутреняя ошибка.
SQLQuery - открывается и сохраняется нормально, пока дело не дошло до Blob-поля. При попытке достать из него значение происходит внутреняя ошибка в коде компонента.

Народ, существуют ли еще способы доступа без BDE к MS SQL?
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020111
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADO - глючит сразу при открытии (все советы из Инета не помогли)


Если по Вашему ADO, написаноое MS, глючит, откуда такая уверенность, что другие компоненты, написанные мелкими фирмами не будут глючить?

Нравиться или нет, но придётся пользоваться АДО, остальные направления тупиковые.

Да и что-то у Вас ну просто всё и сразу глючит. Так не бывает...
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020120
ASDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Могу сказать про SQLQuery. ИМХО самые быстрые компоненты. А для Blob полей надо вроде бы поставить в свойствах ExecuteOptions -> eoCacheToDisk в True. Тогда будет нормально. Сам сталкивался с этой проблемой.
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020124
Timur Sokolov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы порекомендовал использовать ADO и только ADO! MS SQL и ADO - это, практически, родственные души
У Delphi начиная с 5-й версии (кажется) есть вкладка компонентов ADO, как раз для работы с различными SQL серверами. Работает этот движок вполне нормально и не нужно на него наговаривать. Что в тоем понимании глючит? Глюк это понятие относительное, особенно если не знаешь как правильно ADO лучше поставить последнее 2.6x (кажется). Если используется Delphi 5, то нужно установить патч для этой версии ADO (известная проблема с BOF, EOF or record deleted), который есть на сайте Borland.
В любом случае, BDE не нужно использовать для работы с MS SQL, неправильно это. А что касается Blob-ов, то тут отдельная беседа и, по-моему, проблем может быть больше на серверной стороне чем на клиенте.
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020127
Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLQuery без сомнения быстрые и качественные компоненты, НО они работают через dblib - а это опять же тупиковый путь развития. Кто знает, сколько времени мелкомягкие будут еще поддерживать библиотеку???
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020132
IMHO, уже давно не поддерживают. Просто копируют. Ибо поддержка типов в DB-lib осталась на уровне MSSQL6.5

ADO/OLE-DB - единственное верное направление.

Для Delphi, кроме собственных ADO компонент, существуют еще и сторонние, использующие ADO или OLE-DB. Хотя, я бы порекомендовал приручить все-таки TADODataSet (TADOQuery и TADOStoredProc использовать не надо). Все трудности с ним возникают только на начальном этапе. А потом, как по маслу.

Если есть стойкая аллергия на ADO/OLE-DB, то есть ещё старая добрая технология - ODBC. Для работы через ODBC имеется хорошо зарекомендовавший себя фришный компонент mODBC. На torry он есть. ODBC живет и развивается, и несмотря на желание MS его похоронить, ещё очень долго будет жить.
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020138
Aleksandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, кто откликнулся на мою проблему.

Что касается ADO, то мне просто необходимо использовать T*StoredProc, так как все запросы находятся на SQL-сервере. Причем проблема возникла в обновлении данных на сервере, ведь в TADOStoredProc нет свойства UpdateObject. В документации написано, что он должен делать все самостоятельно, но на практике он вообще ничего не делает.
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020146
Timur Sokolov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Глеб Уфимцев
Можно вкратце услышать почему не нужно использовать TADOQuery и TADOStoredProc? Сколько работал, особых проблем не возникало, да и как же без этих компонентов вообще работать? Чем лучше TADODataSet чем TADOQuery? Имхо, это несколько разные вещи. И зачем его приручать?

2 Aleksandr
Что такое UpdateObject? У TADOStoredProc есть метод ExecProc (если не путаю) и этого достаточно чтобы запустить процедуру. Чем должно быть свойство UpdateObject мне не понятно :-\
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020156
> Можно вкратце услышать почему не нужно использовать TADOQuery и TADOStoredProc?

Потому что так рекомендует фирма борланд: вместо TADOQuery и TADOStoredProc использовать TADODataSet. TADOQuery и TADOStoredProc введены только для облегчения перехода с TQuery и TStoredProc. TADODataSet перекрывает ПОЛНОСТЬЮ функциональность и
TADOQuery, и TADOStoredProc.

> Чем лучше TADODataSet чем TADOQuery? Имхо, это несколько разные вещи.

Вообще-то, это одно и то же, по большому счету. Просто в TADODataSet реализована (вытащена в public) бОльшая функциональность, и этот компонент более близок к идеологии ADO.

> И зачем его приручать?

Имелось в виду, что люди не рождаются сразу с умением отлично и беспроблемно применить ADO-компоненты. Нужен некий естественный небольшой период времени на осваивание этих компонент. Этот период я неудачно назвал приручением.
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020169
Aleksandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вижу, что все работают через ADO. Значит это хорошо.
Тогда следующий вопрос: как универсально выполнять операции Update, Insert и Delete в таблице, которая открыта с помощью TADOStoredProc?
Дело в том, что у меня в проекте несколько десятков таблиц, доступ к которым создается динамически. Используется N-Tier технология.
В BDE делалось следующее: создавалась на стороне сервера цепочка TDataSetProvider - TStoredProc - TUpdateSQL. На стороне клиента TDCOMConnection - TClientDataSet - TDataSource. Причем все цепочки на клиенте и на сервере создаются по мере необходимости. В TUpdateSQL на основе открытых полей для клиента создаются правила обновления полей на сервере.
В BDE это все понятно, а как это сделать на ADO?
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020177
Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А у меня есть еще один вопрос(давно возник, но шибко не мешает), как мне кажется в тему будет: в TADOQuery есть запрос:
SELECT a.*, b.name FROM table1 a, table2 b WHERE a.Id=b.Id

Он отображается через Grid, ну и автоматом обновляются данные на серваке. Так вот, можно ли сделать так, чтобы обновлялись, только данные в TABLE1, а поле NAME из таблицы TABLE2 не апдейтелось? Вариант сделать NAME как LOOKUP поле не предлагать, т.к. мне интересно именно то, что я спросил (я, кстати, так и делаю теперь, где это возможно).
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020182
Читать тут:
http://www.delphikingdom.com/helloworld/ado01.htm
http://www.delphikingdom.com/helloworld/ado02.htm
http://www.delphikingdom.com/helloworld/ado03.htm
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020229
MIKLUHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

В библиотеке VGLib (http://www.vglib.com/link-0.html) есть аналог TUpdateSQL для ADO. Он как раз работает через MIDAS.

Желаю успехов.
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020309
AnKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вставлю и свои 10 копеек:
Использовать TADODataSet& TADOCommand предпочтительнее хотябы из-за того, что у них открыто св-во CommandTimeout - очень знаете ли иногда не хватает "вшитых" в TADOQuery и TADOStoredProc 30 секунд. И еще помню на какой-то глюк с
TADOStoredProc напоролся, а на какой - вылетело из головы. Тока я после этого во всем приложении менял TADOStoredProc на TADODataSet.
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32020945
NDavid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Случайно не то, что TADOStoredProc возвращает в DataSet первый SELECT из процедуры
(например в случае последовательного:
SELECT * FROM T1
SELECT * FROM T2
второй не будет доступен?)

если да, то как обходить? (я переделывал процедуры)

покась
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32022480
KSergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Случайно не то, что TADOStoredProc возвращает в DataSet первый SELECT из процедуры
>(например в случае последовательного:
>SELECT * FROM T1
>SELECT * FROM T2
>второй не будет доступен?)

Не совсем понятно, чего вы хотите получить: чтобы вернулись оба SELECT'а? И каким интересно образом?

Либо я вас неверно понял, и вам нужен только второй select (что мною понимаемо) - тогда подозреваю, что SET NOCOUNT ON в начале процедуры вас спасет.
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32022504
EugeneK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может, скорее поможет

SELECT ****
UNION
SELECT ****
...
Рейтинг: 0 / 0
Delphi+MS SQL без BDE?
    #32022507
>(например в случае последовательного:
>SELECT * FROM T1
>SELECT * FROM T2
>второй не будет доступен?)

Аа... Пардон, как так он недоступен? recordset.NextRecordset (или как там в вашем Delphi) пробовали?
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Delphi+MS SQL без BDE?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]