| 
| 
 | Вопрос # 1 853/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!Такой вопрос. Есть клиент. Построенный на комопнентах
 SocketConnection1 + ClientDataSet.
 Есть таблица с полем автоприращений числа. Это сиксенс в БД ОРАКЛ. Вопрос как мне с помощью этого комопнента заставить записать число сиквенса следующего по счету в таблицу. Дл этого я спользовал ODAC и проблем не было. Там в компоненте указываешь сиксенс и все. А здесь, как поступить? П-ста доскажите!
 
|  |   Вопрос задал: John (статус: Посетитель)Вопрос отправлен: 27 августа 2008, 13:50
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 12; последнее сообщение — 29 августа 2008, 15:07; участников в обсуждении: 3. 
|   | Вадим К (статус: Академик), 27 августа 2008, 17:04 [#1]:что такое "сиксенс"? Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Мережников Андрей (статус: Абитуриент), 27 августа 2008, 18:50 [#2]:Для чего такие сложности - строить клиент к SQL серверу  на сокетах? |  
|   | John (статус: Посетитель), 28 августа 2008, 05:33 [#3]:СИКВЕНС - это герератор чисел. Используется в ORACLE для полей с автоприращением. ОЧЕПЯТКА БЫЛА. 
 А такая прога нужна. Это будет глобальная система. Сюда будет входит: ТАРИФИКАЦИЯ, ТЕХУЧЕТ АСЛ, ЗАГРУЗКА *.BIL ФАЙЛОВ С ЦАТС, Расчетный абонентский отдел АОТ ТАК......................
 |  
|   | Мережников Андрей (статус: Абитуриент), 28 августа 2008, 05:48 [#4]:Почему для доступа к Oracle нельзя использовать тот же механизм ADO? Если хотите трехзвенную архитектуру, так можно использовать DataSnap |  
|   | 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 (статус: Посетитель), 29 августа 2008, 07:06 [#9]:Да, что вы заладили ADO да ADO. Вопрос то другой. Я уже много кратно говорил какая разница какая технология................
 Как из грида вставить данные в таблицу Oracle. Причем поле Id имеет последовательность (Сиквенс). Табличные Компоненты этой вкладки не могут подключить сиквенс как объект и использовать его.....
 Не знаю как правильно описать проблему. Но я понял сам как ее решить................
 Придется SQL запросом вставлять данные в таблицу типа..........
 
 INSERT INTO departments VALUES (departments_seq.NEXTVAL,
  epMame,: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 в данном случае не поможет |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |