Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 853

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Такой вопрос. Есть клиент. Построенный на комопнентах
SocketConnection1 + ClientDataSet.
Есть таблица с полем автоприращений числа. Это сиксенс в БД ОРАКЛ. Вопрос как мне с помощью этого комопнента заставить записать число сиквенса следующего по счету в таблицу. Дл этого я спользовал ODAC и проблем не было. Там в компоненте указываешь сиксенс и все. А здесь, как поступить? П-ста доскажите!

John Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: John (статус: Посетитель)
Вопрос отправлен: 27 августа 2008, 13:50
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 12; последнее сообщение — 29 августа 2008, 15:07; участников в обсуждении: 3.
Вадим К

Вадим К (статус: Академик), 27 августа 2008, 17:04 [#1]:

что такое "сиксенс"?
Галочка "подтверждения прочтения" - вселенское зло.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 27 августа 2008, 18:50 [#2]:

Для чего такие сложности - строить клиент к SQL серверу на сокетах?
John

John (статус: Посетитель), 28 августа 2008, 05:33 [#3]:

СИКВЕНС - это герератор чисел. Используется в ORACLE для полей с автоприращением. ОЧЕПЯТКА БЫЛА.

А такая прога нужна. Это будет глобальная система. Сюда будет входит: ТАРИФИКАЦИЯ, ТЕХУЧЕТ АСЛ, ЗАГРУЗКА *.BIL ФАЙЛОВ С ЦАТС, Расчетный абонентский отдел АОТ ТАК......................
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 28 августа 2008, 05:48 [#4]:

Почему для доступа к Oracle нельзя использовать тот же механизм ADO? Если хотите трехзвенную архитектуру, так можно использовать DataSnap
John

John (статус: Посетитель), 28 августа 2008, 05:56 [#5]:

ADO полный отстой. Я использую проффессиональные компоненты ODAC для ОРАКЛА. Я и спользую компоненты вкладки DataSnap.
Но они оказывается не адаптированы для таблиц работы с ораклом.
Вадим К

Вадим К (статус: Академик), 28 августа 2008, 09:43 [#6]:

АДО - хорошая штука, если использовать к примеру с Access. С Oracle конечно на большой системе они конечно будут главным тормозом.

Цитата:


Я использую проффессиональные компоненты ODAC для ОРАКЛА.

и

Я и спользую компоненты вкладки DataSnap.Но они оказывается не адаптированы для таблиц работы с ораклом.

Значит либо компоненты не проффесиональные (тогда бы DataSnap с ними работали), либо они просто "недоработанные", либо их "дружба" невозможно в следствие разницы в идеологии работы, либо DataSnap просто не предназначены для них.

Я бы порекомендовал не делать голословных утверждений. То есть, когда говорят, что БДЕ плохо - да, это понятно. Но к примеру с АДО - нет, но есть задачи где они действительно плохи.

Теперь собственно по вопросу. Мне не сильно понятно, зачем использовать трехзвенную структуру. Основное приимущество Oracle - это быстрота. А запуская работу с ним через лишний комп - только затормозите всю работу. К тому же он - полноценная серверная СУБД, поэтому никто не мешает работать каждому клиенту с ним персонально.

То есть, с какими целями было решено перейти на такую схему работы.
Галочка "подтверждения прочтения" - вселенское зло.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 29 августа 2008, 05:55 [#7]:

"...Дл этого я спользовал ODAC и проблем не было..."
А что побудило отказаться от "профессиональных компонентов"?
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 29 августа 2008, 06:54 [#8]:

Профессиональные компоненты взято в кавычки, чтобы выделить цитату. А по поводу совместной работы DataSnap и ODAC :"Сервер приложений взаимодействует с сервером БД, используя одну из технологий доступа к данным, реализованным в Delphi . Это технологии ADO, BDE, InterBase Express и dbExpress. Разработчик может выбрать наиболее подходящую, исходя из поставленной задачи и параметров сервера БД." Компоненты DataSnap вообще не адаптированы к какой-то конкретной БД. Это делается выбором технологии доступа (см.выше)
John

John (статус: Посетитель), 29 августа 2008, 07:06 [#9]:

Да, что вы заладили ADO да ADO.
Вопрос то другой. Я уже много кратно говорил какая разница какая технология................
Как из грида вставить данные в таблицу Oracle. Причем поле Id имеет последовательность (Сиквенс). Табличные Компоненты этой вкладки не могут подключить сиквенс как объект и использовать его.....
Не знаю как правильно описать проблему. Но я понял сам как ее решить................
Придется SQL запросом вставлять данные в таблицу типа..........

INSERT INTO departments VALUES (departments_seq.NEXTVAL,:DepMame,:ShortName);
SELECT * FROM departments
Запросом и я могу................
А вот как заставить компонент это делать...........
Вот я об этом спрашиваю................
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 29 августа 2008, 09:45 [#10]:

Действительно, причем здесь ADO? Проблема со знанием SQL. Не знаю как в Oracle, а в MS SQL или в InterBase (при настройке триггера) решается все просто - если в списке полей для присваивания значений при вставке новой записи не указано имя автоинкрементного поля, то его значение вычисляется SQL сервером автоматически. А в ClientDataSet настраивается список полей, которым присваивается значение при update или insert.
Вадим К

Вадим К (статус: Академик), 29 августа 2008, 14:14 [#11]:

После продолжительных дебатов по аське с John было установленно следующее.
Как сделать с помощью sql запросов он знает. Но он немножко ленив (читайте весь текст для понимания, почему я так написал) и не хочет делать это с помощью их (много букв будет надо писать) и хочет сделать просто с помощью обычного соединения компонентов. Что бы пользователь видел только один грид (dbgrid - ключевое слово в понимании вопроса). Он считает, что если он будет делать с помощью sql запросов, то использовать грид никак нельзя и прийдётся использовать множество edit и кнопку "записать в базу". а пользователю будет сложно. На самом деле всё может быть проще и мы вроде подошли к нескольким решениям, которые он испытывает.
Галочка "подтверждения прочтения" - вселенское зло.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 29 августа 2008, 15:07 [#12]:

Если для заполнения dbgrid используется запрос, формируемый по нескольким таблицам (и изменения надо вносить сразу в несколько таблиц), то в любом случае без отдельных SQL-зпросов не обойтись. ClentDataSet в данном случае не поможет

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:48
Выполнено за 0.02 сек.