powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Можно ли создать PROCEDURE в динамическом режиме (run-time)
5 сообщений из 5, страница 1 из 1
Можно ли создать PROCEDURE в динамическом режиме (run-time)
    #32277500
ENN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли создавать PROCEDURE динамически
делаю так а мне выдает ошибку В чем ОШИБКА
============================================


try
try

Сюда вставляю что описано ниже

ibqExe.ExecSQL();
except
Result := False;
Application.MessageBox(
PChar( 'Не верен SQL запрос'#13+ibqExe.SQL[ 0 ]+
#13+ibqExe.SQL[ 1 ] +
#13+ibqExe.SQL[ 2 ] ), 'Ошибка', MB_OK );
end;
finally
ibqExe.Close();
ibqExe.SQL.Clear();
end;


Это вставляю
CREATE PROCEDURE Oas
AS
DECLARE VARIABLE NOM_ CHAR(20);
begin
for
select Nom
from Rab
into :nom_
do begin
INSERT INTO M00151 ( IdReNo_, KODPERENOSA)
VALUES ( GEN_ID( idrecno_,1), :Nom_ );
end
end
''
...
Рейтинг: 0 / 0
Можно ли создать PROCEDURE в динамическом режиме (run-time)
    #32277590
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
че за ошибка то?
...
Рейтинг: 0 / 0
Можно ли создать PROCEDURE в динамическом режиме (run-time)
    #32277596
ENN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я разобрался создавать процедуру можно.

В моем случае выдает ошибку в создаваемой процедуре
вопрос попутно почему в into NOM_ не надо двоеточие перед NOM_


CREATE PROCEDURE Oas
AS
DECLARE VARIABLE NOM_ char(20) character set WIN1251 ;
begin
for
select Nom
from Rab
into NOM_
do begin
INSERT INTO M00151 ( IdReNo_, TOVAR )
VALUES ( GEN_ID( idrecno_,1), :Nom_ );
end
end



Выдает ошибку когда я делаю Commit

invalid request BLR at ofset 93
undefined message number

Если меняю строку на
VALUES ( GEN_ID( idrecno_,1), '111111' );
то ошибки нет
Ошибка вскорей всего в кодировке но ГДЕ ..............


Для сведения

CREATE TABLE Rab(
NNOM char(10),
NOM char(20) character set WIN1251 collate PXW_CYRL,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MARKA char(14),
NAIM char(30),
EDIZ char(6),
GR char(10))


CREATE DATABASE 'D:\DELPHI\ZADACHI\BALANS\BASE\Balans.gdb'
USER 'SYSDBA' PASSWORD 'mk31'
PAGE_SIZE 1024
DEFAULT CHARACTER SET WIN1251;
CREATE TABLE M00151 (
IDRENO_ INTEGER NOT NULL,
STAMP_ DATE DEFAULT 'now',
USER_ CHAR(8),
PR1 CHAR(1) COLLATE PXW_CYRL,
COD_T CHAR(14) COLLATE PXW_CYRL,
TOVAR CHAR(50) COLLATE PXW_CYRL,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
EDIZM CHAR(5) COLLATE PXW_CYRL,
GR_TVR CHAR(2) COLLATE PXW_CYRL,
UPAK SMALLINT,
SHET CHAR(6) COLLATE PXW_CYRL,
PRUSLTOV CHAR(10) COLLATE PXW_CYRL,
KODPERENOSA CHAR(20)
);
...
Рейтинг: 0 / 0
Можно ли создать PROCEDURE в динамическом режиме (run-time)
    #32277599
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри это, видимо то что тебе нужно
...
Рейтинг: 0 / 0
Можно ли создать PROCEDURE в динамическом режиме (run-time)
    #32282946
Малиновский Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут кто-то мне рассказывал, что метаданные в IB менять можно, но недолго, типа 255 раз на таблицу, потом нужно Backup-Restore делать. Не проверял, но будь готов.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Можно ли создать PROCEDURE в динамическом режиме (run-time)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]