Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
Вопрос именно по работе с MSSQL Server. Использую в разработке MSSQL 2000 Developer Ed. Собственно разбалованный Oracle и DOA поэтому возникли определеннные проблеммы, на которые наверняка ответят те кто постоянно работает с MSSQL. 1) Не удалось настоить алиас напрямую через BDE (с помощью BDE администратор) - не принимает логин/пароль. 2) Настроил на работу через ODBC - все заработало. Использую стандартные БДЕ компоненты типа TQuery - не понимает поля типа ntext. Ну из этого пока вышел тем что использую тип Image, которые воспринимается bde-компонентами как BLOB. 3) Все-таки не нравится мне через BDE. Имеет ли смысл перейти на ADO? Впринципе, с точки зрения разработки разницы особой нету, будет ли увеличена производительность? (учитывая что работаю опять же через ODBC). 4) Хотел попробовать через dbExpress, но там нет драйвера для MSSQL - как можно настроить? 5) Есть ли какие-то специализированные компоненты/классы для прямого доступа к MSSQL наподобии DOA для Oracle? (ну кроме dbExpress который я так и не смог завести). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 18:03 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
Есть смысл работать через ADO, работает быстрее, не нужно настраивать машину клиента, достаточно что бы был установлент MDAC. Да и глюков у него поменьше чем у BDE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 18:17 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
Или ADO, или dbexpress - для MS SQL скачай апдэйт к Дельфе, там добавлен драйвер. Про BDE забудь лучше :) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 18:46 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
Согласен, ADO предпочтительнее, чем BDE, хотя глюков тоже хватает. DBExpres годится для выборки данных из БД. Можно работать напрямую с Com интерфейсами самого MSSQL, включая его компоненты типа DTS и агентов - Вы все свое держите подконтролем. Но компонентов нет и обработку почти каждого чиха MSSQL придется писать самому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 12:55 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
почему все про SDAC забывают? http://crlab.com/sdac/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 13:08 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
2srf2000 : ну ты разве дашь Это что-то типа старых песен о главном? Ну давай - рекламируй - на кой это SDAC нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 13:15 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
я говорю про возможность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 13:22 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
ну тогда однозначно DB lib, ну или на худой конец - OLE DB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 13:57 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
NetFantom писал: ...учитывая что работаю опять же через ODBC... А почему через ODBC? Можно ведь через "OLE-DB Provider for SQL server". Он, вроде, в стандартную поставку MDAC входит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 15:41 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
Опа, такие же проблемы. DOA действительно разбаловал! Любые извращенные фантазии по работе с данными реализовывались легко и просто. Практические любые возможности Oracle. Сейчас попытка на MSSQL + ADO. Из компонент пробовал TBetterADODataSET Но похоже прийдется от него отказаться. Если особо не заморачиваться с вьюшками то с ADO можно работать. Сейчас написал своего наследника в котром пока вытащил вкусности от TBetterADODataSET. Если проект простой, то возможно и подойтет dbexpress, но как же ты будешь мучаться вспоминая DOA! пока смотрел trial SDAC, в принципе стандартный набор действий позволяют произвести, но сейчас поджимать время и смотреть дальше не стал. Если с ADO будет очень туго, то буду еще раз смотреть на SDAC. Хотелось бы услышать отзывы людей использовавших его в работе. Пока никто не отозвался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 17:50 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
DB-Library или OLE DB? -> OLE_DB (уже не BDE) ADO или DBExpress -> BORLAND будет поддерживать DBExpress, значит предподчтительнее DBExpress ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2003, 15:35 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
dbExpress глюкавая, если уж идет завязка на Winплатформу, да к тому же MSSQL - берите ADO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2003, 20:36 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
Дык, в том то и дело, что хочется компонент заточенных для использования в прикладных задачах. Не хочется изобретать велосипеды, а хочется деньги зарабатывать. На мой взгляд ADO слишком универсально, чтобы на нем писать клиента для одного MSSQL. dbExpress - это явно не для больших прикладных задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 10:16 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
автор писал:На мой взгляд ADO слишком универсально, чтобы на нем писать клиента для одного MSSQL. dbExpress - это явно не для больших прикладных задач. С таким подходом Вам в программировании делать нечего - идите велосипеды изобретать :) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 10:35 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
2 uranic автор писал:dbExpress - это явно не для больших прикладных задач Позвольте поинтересоваться, а какой фнкциональности не хватает вам в dbExpress. И что вы понимаете под большими прикладными задачами ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 13:19 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
Вполне конкретный топик стал опускаться до уровня трепа. Поскольку я надеюсь еще, что-то полезное вынести отсюда, то попробую ответить по порядку: 2tygra : Про подходы: Мне проще заплатить 200-300$ за библиотеку, которая: 1. Позволяет быстро и качественно решать проблемы возникающие перед мной при написании клиентской части. 2. Которую использует еще не один десяток разработчиков, и соответственно вероятность того, что в ней есть ошибки сведена к минимуму. 3. Библиотека не должна быть мертвой. Примером таких библиотек на которых я писал, назвал бы DOA и FIBS. Про велосипеды: я конечно понимаю, что без снобизма написать 3000 сообщений невозможно, но если вам нравиться пользоваться только стандартными компонентами Delphi и писать кипятком, когда вам наконец-то удалось в гриде нарисовать checkbox, что же наверное этот путь для вас. 2pkarklin: Я имею ввиду КИС. Количество пользователей одновременно работающих с базой начиная от 20, таблиц от 100. Я так понял вы знаток dbExpress? Может опишете свои отзывы по использованию dbExpress, или вы тока ради "флейма" пишите? Особенно по след пунктам: 1. Мне не нравятся однонаправленные курсоры. Уж если я вытянул данные на клиента в датасет, то уж будьте добры дать мне возможность по моему вкусу изменить запросы на Update, Insert, и RefreshRecord. Да, если можно, я даю пользователями менять данные прямо в гриде (QuantumGrid)! 2. Любой датасет на клиенте (вне зависимости от того сколько там соединений и условий) я должен иметь возможность, без лишнего напряжения, сделать редактируемым. Обычный пользователь даже и не догадывается во сколько таблиц и как я сохраняю данные. 4. Что Нам скажет dbExpress о поводу получения identy полей, без дополнительных ухищрений в виде GUID? (Здесь я не в курсе, может быть что поменялось со времен моего последнего с ним знакомства). 3. Я хочу легко и непринужденно выдавать пользователю понятные сообщения на русском языке, в зависимости от срабатывания того или иного check, constraint и FK, раз уже бизнес логика реализована на сервере. 4. Работать с русскими названиями таблиц, включая пробелы. 5. Работа с хранимыми процедурами (в том числе и которые возвращают рекордсет), функциями, представлениями(в том числе и редактируемыми) и блобами не должна вызывать головной боли. 6. Связки мастер-деталь датасетов, должны делаться что называется в два клика. Все эти положения сильно упрощают жизнь разработчику, поэтому и хотел услышать отзывы людей которые сделали и поддерживают реально работающие системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 22:41 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
2 uranic Я имею ввиду КИС. Количество пользователей одновременно работающих с базой начиная от 20, таблиц от 100. Имел дела с системами и по круче. Я так понял вы знаток dbExpress? Может опишете свои отзывы по использованию dbExpress, или вы тока ради "флейма" пишите? Особенно по след пунктам: Сам себя знатоком не считаю, пусть другие об этом судят. 1. Мне не нравятся однонаправленные курсоры. Уж если я вытянул данные на клиента в датасет, то уж будьте добры дать мне возможность по моему вкусу изменить запросы на Update, Insert, и RefreshRecord. Да, если можно, я даю пользователями менять данные прямо в гриде (QuantumGrid)! Не поняли вы, uranic, основное предназначение dbExpress, однако - это быстрое и с меньшими накладными расходами получение наборов данных. Причем именно в виде однонаправленного курсора. 2. Любой датасет на клиенте (вне зависимости от того сколько там соединений и условий) я должен иметь возможность, без лишнего напряжения, сделать редактируемым. Обычный пользователь даже и не догадывается во сколько таблиц и как я сохраняю данные. Вот америку открыл. Тока для этого надо использовать вместе с dbExpress TClientDataSet. 4. Что Нам скажет dbExpress о поводу получения identy полей, без дополнительных ухищрений в виде GUID? (Здесь я не в курсе, может быть что поменялось со времен моего последнего с ним знакомства). какая связь между identity и GUIDом?. Или одно или другое. Да, чтоб получить сгенеренное на сервере id, надо еще предпринять телодвижения, чтоб получить его на клиента. Или в других средствах доступа это без дополнительных телодвижений обходится? 3. Я хочу легко и непринужденно выдавать пользователю понятные сообщения на русском языке, в зависимости от срабатывания того или иного check, constraint и FK, раз уже бизнес логика реализована на сервере. А это как связана с механизмом доступа? Что вы под этим подразумеваете, прокоментируйте, плиз... 4. Работать с русскими названиями таблиц, включая пробелы. А зачем??? Конечный пользователь все равно не должен иметь представления об этом. 5. Работа с хранимыми процедурами (в том числе и которые возвращают рекордсет), функциями, представлениями(в том числе и редактируемыми) и блобами не должна вызывать головной боли. А здесь какие проблемы?! 6. Связки мастер-деталь датасетов, должны делаться что называется в два клика. Да ради бога. С помошью TClientDataSet опять же. Все эти положения сильно упрощают жизнь разработчику, поэтому и хотел услышать отзывы людей которые сделали и поддерживают реально работающие системы. Ну так и слушай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 09:07 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 10:57 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
2pkarklin <---skipped-----------> автор писал:Не поняли вы, uranic, основное предназначение dbExpress, однако - это быстрое и с меньшими накладными расходами получение наборов данных. Причем именно в виде однонаправленного курсора. Вот тож, что только и радости что они меньше. Ни скорости ни простоты разработки это уменьшение не дает. автор писал:Вот америку открыл. Тока для этого надо использовать вместе с dbExpress TClientDataSet. Ну-ну. И часто вы используете dbExpress и TClientDataSet? автор писал:какая связь между identity и GUIDом?. Или одно или другое. Да, чтоб получить сгенеренное на сервере id, надо еще предпринять телодвижения, чтоб получить его на клиента. Или в других средствах доступа это без дополнительных телодвижений обходится? Без. Ни строчки кода. автор писал:А это как связана с механизмом доступа? С механизмом доступа практически никак. Но мы то обсуждаем библиотеки для доступа. В DAO и FIBS я без единной строчки кода буду выдавать внятные сообщения на русском языке. автор писал:А зачем??? Надо. База такая. Считайте требованием ТЗ. автор писал:А здесь какие проблемы?! А вы пробовали? автор писал:Ну так и слушай. Пытаюсь, тока пока вижу только комментарии к моему посту и я не понял какой опыт работы у вас с dbExpress. Поподробней плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 12:17 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
Скоро я умру от смеха автор писал:Вот тож, что только и радости что они меньше. Ни скорости ни простоты разработки это уменьшение не дает. А что может дать? Что такое для тебя скорость и простота? Куда еще проще? автор писал:Без. Ни строчки кода. Пример в студию. автор писал:С механизмом доступа практически никак. Но мы то обсуждаем библиотеки для доступа. В DAO и FIBS я без единной строчки кода буду выдавать внятные сообщения на русском языке. Ты об чем? Опомнись. Ошибки и сообщения выдает сервер. Ну если ты предпочитаешь юзерам выдавать то, что пишет сервер, то..... автор писал:А вы пробовали? А мы работаем только через ХП. И работает. Дык что конкретно не устраивает? Хоть пробовал чего делать? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 12:30 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
автор писал:Ну-ну. И часто вы используете dbExpress и TClientDataSet? TClientDataSet - Во всех своих последних проектах. С годик эдак. dbExpress с 7 версии. автор писал:С механизмом доступа практически никак. Но мы то обсуждаем библиотеки для доступа. В DAO и FIBS я без единной строчки кода буду выдавать внятные сообщения на русском языке. Ты имеешь ввиду на уровне установки свойств а-ля CustomConstraint в bdeшних датасетах. Ну и что здесь прикольного. 99% ошибок дает серверная часть. И не выдача сообщений пользователю на русском отнимает больше времени. автор писал:А вы пробовали? Знаешь, дорогой мой. Ты тут писал, что хочешь послушать, тех, кто пробовал. Если есть конкретные проблемы, то спрашивай. А флудить иди в ПТ. Код: plaintext Достаточный, чтоб строить с его использованием приложения в архитектуре к/с. Не веришь - ради бога. Это твои проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 12:52 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
2Веселый клоун автор писал:Пример в студию. В датасете устанваливается проперть для какого поля из какого генератора(Sequence) брать значение, и когда (beforpost и т.п.). Ничего писать не надо. ADO тоже спокойно может получать значения первичных ключей и пр. 2pkarklin автор писал:Ты имеешь ввиду на уровне установки свойств а-ля CustomConstraint в bdeшних датасетах. Ну и что здесь прикольного. 99% ошибок дает серверная часть Имеется ввиду следующее. При проектировании базы создаются Constraint Например цена не может быть меньше нуля. При срабатывании Constraint клиент видит у себя вполне нормальное сообщение. Опять таки ни строчки кода. То же самое касается FK. А что может предложить dbExpress, когда на сервере очень жестко прописана базнес-логика? автор писал:. И не выдача сообщений пользователю на русском отнимает больше времени. Дык, так поделитесь опытом, что же больше всего времени отнимает при программнировании на dbExpress... автор писал:Достаточный, чтоб строить с его использованием приложения в архитектуре к/с. Ой, сама скромность. Хотелось бы тогда услышать как вы решаете в dbExpress 1. Возможные проблемы при многопользовательской работе например пока запись редактировалась ее удлил(изменил) другой пользователь. Опять таки в DOA настройкой поведения датасета. 2. Получение значений полей сгенерированных сервером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 15:48 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
автор писал:В датасете устанваливается проперть для какого поля из какого генератора(Sequence) брать значение, и когда (beforpost и т.п.). Ничего писать не надо. \r ADO тоже спокойно может получать значения первичных ключей и пр.\r \r Нету в сиквеле генераторов последовательностей. \r \r автор писал:Имеется ввиду следующее. При проектировании базы создаются Constraint \r Например цена не может быть меньше нуля. При срабатывании Constraint клиент видит у себя вполне нормальное сообщение. Опять таки ни строчки кода. То же самое касается FK. А что может предложить dbExpress, когда на сервере очень жестко прописана базнес-логика?\r \r Причем тут dbExpress? Ну создал ты ограничение на сервере. Ну так при нарушении этого ограничения клиент по умолчанию получит стандартное сообщение от сервера о нарушении ограничения. А вот если ты хочешь, чтоб клиент всегда получал вразумительное сообщение об ошибке не взирая на механизм доступа, то или используют триггера или хп, где выполняют соответсвующую проверку и выдают вразумительное сообщение. Это составная часть бизнес-логики. Про какие Constraint мы вообще говорим? Я не знаком с ораклом. Там можно пользовательские сообщения на нарушение ограничения вешать?\r \r автор писал:Дык, так поделитесь опытом, что же больше всего времени отнимает при программнировании на dbExpress... \r \r Еще раз повторюсь, единственна задача dbExpress - это получить с минимальными накладными расходами набор с севера. ВСЕ!!! Остальная функциональность реализуеться на уровне TClientDataSet.\r \r автор писал:Ой, сама скромность.\r \r Что есть - тем и горжусь.Тебе завидно, что-ли.\r \r автор писал:Хотелось бы тогда услышать как вы решаете в dbExpress \r 1. Возможные проблемы при многопользовательской работе например пока запись редактировалась ее удлил(изменил) другой пользователь. \r Опять таки в DOA настройкой поведения датасета. \r 2. Получение значений полей сгенерированных сервером\r \r Опять ты пытаешься возложить на dbExpress решение задач, которые нужно решать другими средствами. Свое решение о разрешении вопроса, связанного с блокировками я предлагал здесь\r /topic/22318&. Причем не на уровне записи, а на более высоком уровне, документа. Кроме того, не надо забывать и про режим оптимистических блокировок. А по вопросу получения значения автоинкрементного поля уже тысчя топиков была, для сиквела вставка через хп с возвратом значения в выходном параметре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 16:14 |
|
||
|
Delphi + MSSQL - какой метод доступа выбрать?
|
|||
|---|---|---|---|
|
#18+
Вроде бы примерно одинаково по схеме работы-то, что ADO, что dbExpress. Про АДО могу точно сказать, что есть глюки, нельзя использовать Master/Detail при вставке записей в оба датасета, например. Но все можно исправить ручками (подправляя ADODB). Не поручусь, что тех же проблем нет с dbExpress. Может, найдешь какую отдельную библу по работе с АДО ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 13:24 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2116069]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 409ms |

| 0 / 0 |
