Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.12.2009, 13:28
Аватар для Agito
Agito Agito вне форума
Прохожий
 
Регистрация: 22.06.2009
Сообщения: 11
Репутация: 10
По умолчанию Триггеры и Хранимые процедуры (Paradox+TQuery)

Всем здрасьте. Сражу скажу, если вопросы глупые, то тухлыми помидорами не закидывайте.

У меня имеется 4 таблички PARADOX, несколько TQuerry, BDGrid и DataSourse. С этим вроде как разобрался, реализовал поиск\добавление\удаление итд. Однако, сейчас передо мной стоит задача внедрить Хранимые процедуры, Триггеры, Представления и функции объединенные в динамически загружаемую библиотеку. Для начала я хочу сделать Триггеры и Хранимые процедуры (как я понял триггер это и есть хранимая процедура, просто имеет конкретное назначение).
Сколько не пытался где-то чего-то нарыть про все это дело, но ни к чему толком не пришел (видел примеры для MySQL, TSQL, но не помогли). Пробывал сувать строчки SQL в SQLstring - результатом было сообщение "данная способность не поддерживается"
И теперь вопросы собственно-та: Вообще с помощью TQuerry можно создать эти хранимые процедуры? По мне так он это дело не умеет. Если действительно нельзя, то как быть?
Ответить с цитированием
  #2  
Старый 25.12.2009, 13:33
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

На парадоксе вы этого не сделаете. Т.к. тригер и хранимка - суть понятия из клиент-серверной архитектуры, а парадокс таковым никогда небыл.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 25.12.2009, 13:53
Аватар для Agito
Agito Agito вне форума
Прохожий
 
Регистрация: 22.06.2009
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
На парадоксе вы этого не сделаете. Т.к. тригер и хранимка - суть понятия из клиент-серверной архитектуры, а парадокс таковым никогда небыл.
Да уж, были у меня и такие мысли.
Что вы можете посоветовать в моем случае? Придется все начинать с нуля (не считая таблиц)? Не знаю чем отличается MySQL от TSQL, но с первым приходилось уже встречаться при работе с PHP. Потому если есть предложения то лучше с MySQL.
Ответить с цитированием
  #4  
Старый 25.12.2009, 16:42
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

TSQL - это еще что такое?
Transact SQL - что ли? Так это не SQL-сервер, а внутренний язык для общения с MSSQL.
В вашей задаче меня смущает вот это:
Цитата:
Однако, сейчас передо мной стоит задача внедрить Хранимые процедуры, Триггеры, Представления и функции объединенные в динамически загружаемую библиотеку

Видимо вы не очень представляете, что такое тригер, а что такое хранимая процедура. Попробую по народно/крестьянски объяснить:
Тригер - это действительно некая процедура которая срабатывает исключительно на определенное событие. Для таблицы в БД таких событий обычно 7.
1. До вставки записи(ей)
2. До удаления записи(ей)
3. До изменения записи(ей)
4. После вставки записи(ей)
5. После удаления записи(ей)
6. После изменения записи(ей)
7. Собственная обработка.
Вы можете обработать индивидуально каждое событие по отдельности или все скопом, но основная прелесть этого механизма в том, что независимо от источника подключения к таблице тригер сработает в любом случае, т.к. фактически вы подключаетесь не напрямую к таблице, а к серверу который и реализует это удовольствие. Вполне допускаю возможность написания драйвера, который будет поддерживать данную технологию без участия сервера, но мне с таким сталкиваться не приходилось, хотя в свете того, что акцес 2010 стал поддерживать тригеры и для локальной БД, вполне возможно, что так и будет.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 25.12.2009 в 17:36.
Ответить с цитированием
  #5  
Старый 25.12.2009, 17:08
Аватар для Agito
Agito Agito вне форума
Прохожий
 
Регистрация: 22.06.2009
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
TSQL - это еще что такое?
Transact SQL - что ли? Так это не SQL-сервер, а внутренний язык для общения с MSSQL.
Мм, если чесна понятия не имею что это. Где-то видел было написано "синтаксис T-SQL"... но суть не в этом, вопрос предыдущего поста открыт.
Ответить с цитированием
  #6  
Старый 25.12.2009, 17:27
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Так в чем вопрос- то? Переходи на MySql или что- то подобное, вот и есть решение проблемы.
Ответить с цитированием
  #7  
Старый 25.12.2009, 17:56
Аватар для Agito
Agito Agito вне форума
Прохожий
 
Регистрация: 22.06.2009
Сообщения: 11
Репутация: 10
По умолчанию

Страдалецъ, да вроде понимаю как работает, про события читал. Не уверен правда в каком виде хранятся эти самые процедуры... думаю, что в виде обыкновенных файлов, которые запускается в определенных ситуациях.
Ответить с цитированием
  #8  
Старый 25.12.2009, 18:04
Аватар для Agito
Agito Agito вне форума
Прохожий
 
Регистрация: 22.06.2009
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от TOJluK
Так в чем вопрос- то? Переходи на MySql или что- то подобное, вот и есть решение проблемы.
А проблема в том что на Парадоксе у меня все готово, только нет этих самых процедур, но как выяснили их и внедрить нельзя, потому у меня и вопрос был "Что вы можете посоветовать в моем случае? Придется все начинать с нуля (не считая таблиц)?". То есть на какие аналоги лучше заменить, чтобы не конопатить заново абсолютно все. Ну даже к примеру... есть SQLQuery, ADOQuery и IBQuery, в чем их различая я не знаю, для этого надо про каждый компонент отдельно читать, чтобы все понять. То есть я прошу совета... что будет лучше всего в моем случае, я отправлюсь читать и изучать.
Ответить с цитированием
  #9  
Старый 25.12.2009, 21:41
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

IBQuery используется для запросов к Interbase или FireBird. Так-что это узкоспециализированный компонент доступа к BD.
У AdoQuery более широкое поле деятельности, в идеале если есть ODBC драйвер, то с помощью ADO можно подключаться к чему угодно. К сожалению на практике это не так. Скажем к IBase,Oracle и еще некоторым широкоиспользуемым BD насколько я в курсе через ADO не подключится.
BDE - устаревшая во многом технология доступа к BD, но некоторые задачи с помощью нее решать намного легче.
DBExpress - я эту технологию пробовал пару раз использовать, но наткнувшись на грабли бросил. Тут я ничего не подскажу.
Вы спрашиваете совета. Но вы и сами прекрасно уже поняли, что если есть необходимось использовать хранимки и тригеры, от парадокса придется отказаться и смотреть в сторону клиент-серверного решения.
Лично я предпочитаю работать с MSSQL.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #10  
Старый 25.12.2009, 22:46
Аватар для Agito
Agito Agito вне форума
Прохожий
 
Регистрация: 22.06.2009
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
IBQuery используется для запросов к Interbase или FireBird. Так-что это узкоспециализированный компонент доступа к BD.
У AdoQuery более широкое поле деятельности, в идеале если есть ODBC драйвер, то с помощью ADO можно подключаться к чему угодно. К сожалению на практике это не так. Скажем к IBase,Oracle и еще некоторым широкоиспользуемым BD насколько я в курсе через ADO не подключится.
BDE - устаревшая во многом технология доступа к BD, но некоторые задачи с помощью нее решать намного легче.
DBExpress - я эту технологию пробовал пару раз использовать, но наткнувшись на грабли бросил. Тут я ничего не подскажу.
Вы спрашиваете совета. Но вы и сами прекрасно уже поняли, что если есть необходимось использовать хранимки и тригеры, от парадокса придется отказаться и смотреть в сторону клиент-серверного решения.
Лично я предпочитаю работать с MSSQL.
Большое спасибо за информацию, сам вроде остановился на DBExpress, но обязательно рассмотрю вариант с MSSQL.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:33.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter