Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera, estou com um problema meio chato aqui..
Eu to criando uma aplicação para atualizar o banco de dados, nela ja estou criando
e alterando tabelas normalmente, mas quando vou criar um procedimento é retornado um erro
SQL error cod = -104
Token unknown - line 14, column 6
?'.
Estou usando uma query para fazer isso..
o código é o seguinte
BQryInsUp.Close;
BQryInsUp.SQL.Clear;
BQryInsUp.SQL.Add('CREATE OR ALTER PROCEDURE PA_ALTERQTITEM');
BQryInsUp.SQL.Add('(');
BQryInsUp.SQL.Add(' N_QT FLOAT,');
BQryInsUp.SQL.Add(' I_CODITEM INTEGER');
BQryInsUp.SQL.Add(')');
BQryInsUp.SQL.Add('AS');
BQryInsUp.SQL.Add('DECLARE VARIABLE VALORIT DOUBLE PRECISION;');
BQryInsUp.SQL.Add('DECLARE VARIABLE TOTAL DOUBLE PRECISION;');
BQryInsUp.SQL.Add('DECLARE VARIABLE COMISSAO DOUBLE PRECISION;');
BQryInsUp.SQL.Add('DECLARE VARIABLE NCOMISSAO DOUBLE PRECISION;');
BQryInsUp.SQL.Add('begin');
BQryInsUp.SQL.Add('SELECT C_PRECO FROM ITEM');
BQryInsUp.SQL.Add('WHERE I_CONTADOR=:I_CODITEM');
BQryInsUp.SQL.Add('INTO :VALORIT;');
BQryInsUp.SQL.Add('TOTAL = VALORIT * :N_QT;');
BQryInsUp.SQL.Add('SELECT N_COMISSAO FROM ITEM');
BQryInsUp.SQL.Add('WHERE I_CONTADOR=:I_CODITEM;');
BQryInsUp.SQL.Add('INTO :NCOMISSAO;');
BQryInsUp.SQL.Add('IF (NCOMISSAO > 0) THEN');
BQryInsUp.SQL.Add(' BEGIN');
BQryInsUp.SQL.Add(' COMISSAO = (VALORIT * :N_QT) * (NCOMISSAO/100);');
BQryInsUp.SQL.Add(' END');
BQryInsUp.SQL.Add('UPDATE ITEM SET');
BQryInsUp.SQL.Add('N_QUANTIDADE=:N_QT,');
BQryInsUp.SQL.Add('C_TOTAL=:TOTAL,');
BQryInsUp.SQL.Add('C_COMISSAO=:COMISSAO');
BQryInsUp.SQL.Add('WHERE I_CONTADOR=:I_CODITEM;');
BQryInsUp.SQL.Add('end;');
BQryInsUp.ExecSQL;
pelo IBConsole eu concigo criar q é uma beleza, mas preciso q seja em tempo de execução.
Uso DELPHI 7, FIREBIRD 2.0.3, e componentes da paleta INTERBASE.
Carregando comentários...