hilpers


  hilpers > comp.* > comp.bazy-danych

 #1  
22.11.2006, 08:11
R2r
Witam,

Probuje wykonac nastepujaca procedure:

CREATE PROCEDURE SET_GENERATORS
returns (
a bigint)
as
declare variable c varchar(300);
declare variable tmp varchar(200);
begin
for select rdb$generator_name from rdb$generators
where (rdb$generator_name not containing '$')
into :tmp
do
begin
c='insert into'||a||'values (gen_id('||tmp||',1)';
execute statement c;
suspend;
end
end

Procedura kompiluje sie poprawnie, natomiast podczas wykonania
wyskakuje blad "Invalid argument in EXECUTION STATEMENT - cannot
convert to string"

Skad ten blad i jak go naprawic?? Z gory dzieki za pomoc.

pzdr. R2r
 #2  
22.11.2006, 08:28
Wito
R2r napisal(a):
[..]
> end
> end
>
> Procedura kompiluje sie poprawnie, natomiast podczas wykonania
> wyskakuje blad "Invalid argument in EXECUTION STATEMENT - cannot
> convert to string"
>
> Skad ten blad i jak go naprawic?? Z gory dzieki za pomoc.
>
> pzdr. R2r


1. 'insert into'||a||'values --->>> tu brakuje chyba kilku spacji
2. zwracasz "a" a gdzie jest ustawiana wartosci tego "a"
3. zgodnie z komunikatem nie mozna przetworzyc instrukcji gdzie a jest
puste
4. "a" powinno byc zadeklarowane jako zmienna wejsciowa (przy zalozeniu
ze uzytkownik bedzie podawal nazwe tabeli) a nie jako zmienna zwracana
np: CREATE PROCEDURE SET_GENERATORS ( a varchar (50)) wtedy wywolujesz
procedure z parametrem

Sprostuj jezeli sie pomylilem

Wito
 #3  
22.11.2006, 08:39
R2r
Wito napisał(a):
> R2r napisal(a):
>
> 1. 'insert into'||a||'values --->>> tu brakuje chyba kilku spacji
> 2. zwracasz "a" a gdzie jest ustawiana wartosci tego "a"
> 3. zgodnie z komunikatem nie mozna przetworzyc instrukcji gdzie a jest
> puste
> 4. "a" powinno byc zadeklarowane jako zmienna wejsciowa (przy zalozeniu
> ze uzytkownik bedzie podawal nazwe tabeli) a nie jako zmienna zwracana
> np: CREATE PROCEDURE SET_GENERATORS ( a varchar (50)) wtedy wywolujesz
> procedure z parametrem
>
> Sprostuj jezeli sie pomylilem
>
> Wito


Faktycznie brakuje kilku spacji :)).

Jest tez tam zmienna tmp, ktora to podaje nazwe tabeli. Do zmiennej a
chce wstawic wartosc z generatora o nazwie przekazanej w zmiennej tmp.
Chce uzyskac wartosc danego generatora. Taka jest mysl przewodnia :)
 #4  
22.11.2006, 11:58
Wito
R2r napisał(a):
> Wito napisał(a):
>
> Faktycznie brakuje kilku spacji :)).
>
> Jest tez tam zmienna tmp, ktora to podaje nazwe tabeli.

tmp PRZEKAZUJE NAZWE GENERATORA A NIE TABELI !!!!

Do zmiennej a chce wstawic wartosc z generatora o nazwie przekazanej w
zmiennej tmp.

1. tmp przetrzymuje nazwe generatora i to jest ok
2. wg mnie powinienes TYLKO TO napisac
a = gen_id('||tmp||',0) - co zwroci biezaca wartosc generatora

tAK TO POWINNO WYGLADAC
CREATE PROCEDURE SET_GENERATORS
returns ( a bigint)
as
declare variable c varchar(300);
declare variable tmp varchar(200);
begin
for select rdb$generator_name from rdb$generators
where (rdb$generator_name not containing '$')
into :tmp
do
begin
C = ' select gen_id ( ' || :tmp || ',0 ) from RDB$Database';
//lub rdb$databases

a = execute statement c;

suspend;
> > > end
> > > end


Wito
Podobne wątki
iptables - Invalid argument

Witam, Korzystam z dystrybucji ubuntu 8.0.4, czy wiecie moze dlaczego pojawia sie "Invalid argument" gdy chce dodac "-m owner --cmd-owner transmission" przy innych opcjach...

PLD, iptables, ipt_string, invalid argument

Witam, Nie moge odpalic reguly iptables -A INPUT -s 192.168.0.x -m string -- string "test" -j LOG. Dostaje odpowiedz - iptables: Invalid argument System to PLD 2.0,...

connlimit, 'invalid argument'

Witam, ostatnio natknalem sie na blad jak w temacie, probujac zaladowac regule zawierajaca connlimit. Blad wystepowal gdy na koncu brakowalo '-j (...)'. Gdy dodawalem jakis...

iptables: Invalid argument (ipp2p)

Witam Mam problem z ipp2p, skompilowalem jajko 2.4.29 zgodnie z opisem na [..], moduł siedzi w jajku iptables -m ipp2p -h pokazuje co powinien. Wpisuje iptables -t mangle -A...


Czasy w strefie GMT. Teraz jest 22:40. | Privacy Policy