|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
Приветствую знатоков FB. Переписываю серверную часть с MS SQL на FB. Подскажите, где можно найти хорошие примеры с курсорами (явными и неявными). А то у меня триггер в пять строк, но как я не извращался с for...select...do, переменными и двоеточием (":"), так и не смог его создать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:32 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
WellSlava, триггеры в MS SQL совершенно не годятся для Firebird, ибо в MS они FOR EACH STATEMENT, а в Firebird — FOR EACH ROW. Надо полностью пересматривать логику. А по синтаксису всё можно найти в этом документе Firebird_3_0_Language_Reference_RUS.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:36 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
Симонов Денис, Да этим руководствуюсь. Примеры оттуда беру, но все равно получаю ошибки. В MS объявил переменную и работаю с ней, как хочу; здесь - без двоеточия, с ним. Вот скрипт в MS SQL - при добавлении записи в таблице User_Info из таблицы Prog_MenuItem берутся все записи и заносятся в табличку связи Link_UserMenuItem (По-русски: при добавлении пользователя на него автоматом вешаются настроечные пункты меню) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Вот переработка для FB. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Что здесь не так, понять не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 20:46 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
WellSlava, очевидно что ты не там выполняешь сей запрос. Если пользуешься IB Expert, то выполнять надо в редакторе скриптов. Если в ISQL то прочитай про переключения терминатора с помощью команды SET TERM ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 20:58 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
Симонов Денис, IBExpert у меня вообще не работает - вот выдает ошибку при подключении к базе FB (после регистрации) Error Message: ---------------------------------------- can't format message 13:96 -- message file c:\Program Files\Embarcadero\InterBase/interbase.msg not found. unavailable database. [00544E97] FIB.IBError (Line 558, "FIB.pas" + 55) + $2 [00540253] FIBDatabase.TFIBDatabase.Open (Line 1115, "FIBDatabase.pas" + 69) + $9 [005181EF] pFIBDatabase.TpFIBDatabase.Open (Line 279, "pFIBDatabase.pas" + 9) + $2 [0054054D] FIBDatabase.TFIBDatabase.SetConnected (Line 1185, "FIBDatabase.pas" + 4) + $4 [010DF082] IBEDatabases.TIBEDatabase.Connect (Line 3223, "IBEDatabases.pas" + 2) + $10 [01068CEA] InspectorFm.TInspectorFrame.OpenDatabase (Line 3347, "Frames\InspectorFm.pas" + 44) + $D [01063AFA] InspectorFm.TInspectorFrame.ObjectsTLDblClick (Line 1314, "Frames\InspectorFm.pas" + 11) + $A [004555C5] Controls.TControl.DoMouseDown (Line 4306, "Controls.pas" + 2) + $21 [00455681] Controls.TControl.WMLButtonDblClk (Line 4331, "Controls.pas" + 5) + $C [00444388] Forms.StdWndProc (Line 1459, "Forms.pas" + 8) + $0 [0044DB97] Forms.TApplication.ProcessMessage (Line 6630, "Forms.pas" + 13) + $1 [011251BE] IBExpert.IBExpert (Line 935, "D:\Projects_5\IBExpert\IBExpert.dpr" + 147) + $7 ================================================================================ Пользуюсь SQL Manager Lite for InterBase & Firebird. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 21:20 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
WellSlava, для начала узнай чем ты именно пользуешься Firebird или Interbase. И если Firebird. то неплохо бы озвучить версию. В IB Expert путь к клиенту можно указывать отдельно для каждой зарегистрированной базы. Надо указывать родной клиента. Очевидно, что у тебя что-то там ищется интербейсовское. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 21:23 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
WellSlavaСимонов Денис, IBExpert у меня вообще не работает - вот выдает ошибку при подключении к базе FB (после регистрации) Error Message: ---------------------------------------- can't format message 13:96 -- message file c:\Program Files\Embarcadero\InterBase/interbase.msg not found. unavailable database. [00544E97] FIB.IBError (Line 558, "FIB.pas" + 55) + $2 [00540253] FIBDatabase.TFIBDatabase.Open (Line 1115, "FIBDatabase.pas" + 69) + $9 [005181EF] pFIBDatabase.TpFIBDatabase.Open (Line 279, "pFIBDatabase.pas" + 9) + $2... ... Вот само сообщение: unavailable database . Покажи, как подключаешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 21:27 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
ёёёёёWellSlavaСимонов Денис, IBExpert у меня вообще не работает - вот выдает ошибку при подключении к базе FB (после регистрации) Error Message: ---------------------------------------- can't format message 13:96 -- message file c:\Program Files\Embarcadero\InterBase/interbase.msg not found. unavailable database. [00544E97] FIB.IBError (Line 558, "FIB.pas" + 55) + $2 [00540253] FIBDatabase.TFIBDatabase.Open (Line 1115, "FIBDatabase.pas" + 69) + $9 [005181EF] pFIBDatabase.TpFIBDatabase.Open (Line 279, "pFIBDatabase.pas" + 9) + $2... ... Вот само сообщение: unavailable database . Покажи, как подключаешься. Оно то понятно, но какого хрена IDExpert лезет сюда: "c:\Program Files\Embarcadero\InterBase/interbase.msg not found". У меня IB нет на компе. Подключаюсь двойным щелчком мыши в окне, где отображаются базы данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 22:08 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
WellSlava, потому что в качестве клиента надо было выбирать fbclient.dll от правильной версии сервера, а не оставлять gds32.dll по умолчанию, который подхватывается от установленного interbase или Delphi ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 22:15 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
WellSlavaёёёёёпропущено... Вот само сообщение: unavailable database . Покажи, как подключаешься. Оно то понятно, но какого хрена IDExpert лезет сюда: "c:\Program Files\Embarcadero\InterBase/interbase.msg not found". У меня IB нет на компе. Подключаюсь двойным щелчком мыши в окне, где отображаются базы данных. Покажи окошко, где регистрационная информация для данной конкретной базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 22:45 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
Симонов Денис, Благодарю. Я, в принципе, и думал, что связано с этим, но только предполагал, что выбрав в настройках FB 3.0, программа сама выберет нужный файл или сделает запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 12:36 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
WellSlava, откуда IB Expert это должен узнать. В системе можно хотя 10 разных или одинаковых версий Firebird поставить. Есть библиотека зарегистрированная глобально, вот она и берётся. Исторически сложилось что по умолчанию в эксперте в качестве клиента выставлено gds32.dll. Никто не мешает fbclient.dll зарегистрировать как gds32.dll ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 12:41 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
Симонов Денис, Да я просто рассуждаю, как бы сам делал. Но скрипт из IB тоже выдает ошибку. Буду сейчас здесь менять синтаксис . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 12:53 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
WellSlava, ошибка обычно всякие буковки содержит, они часто подсказывают в чём дело ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 13:16 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
Симонов Денис, В данном случае выдает ошибку This operation is not defined for system tables. unsuccessful metadata update. CREATE TRIGGER T_USER_INFO_I1 failed. no permission for ALTER access to TABLE USER_INFO. Транзакция откачена... (0 ms) Не могу понять каких прав нет? Вхожу под sysdba. И, кстати, почему после перезагрузки IBExpert снова ищет IB? В настройках выставил по-умолчанию fbclient.dll ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 13:37 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
WellSlava, уверен? Что даёт Код: sql 1. 2. 3. 4.
Какой user_management используется? Маппигом не баловался? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 13:46 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
Симонов Денис, Благодарю за ответы. С синтаксисом разобрался. Пользуюсь SQL Manager Lite for InterBase & Firebird - на мой взгляд он качественней IBExpert. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:13 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
WellSlavaИ, кстати, почему после перезагрузки IBExpert снова ищет IB? В настройках выставил по-умолчанию fbclient.dll хочешь работать с ИБ и ФБ - удали из системных путей gds32.dll и fbclient.dll. В IbExpert всегда указывай конкретный путь и конкретную библиотеку, а не просто имя fbclient.dll, которого в PATH может не оказаться. Хочешь чтобы fbclient был в системном пути - сделай instclient i f. Хочешь, чтобы gds32.dll из fbclient был в системном пути - сделай instclient i g если что непонятно - читай http://www.ibase.ru/inst_manual/ ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:17 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
11.04.2019 14:13, WellSlava пишет: > Пользуюсь SQL Manager Lite for InterBase & Firebird нет такого. https://www.sqlmanager.net/ru/products/ibfb/manager Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:19 |
|
Циклы в FireBird
|
|||
---|---|---|---|
#18+
Мимопроходящий, есть, они переименовали в EMS SQL Manager for InterBase/Firebird Freeware ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:33 |
|
|
start [/forum/topic.php?fid=40&fpage=24&tid=1560742]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 162ms |
0 / 0 |