Fórum Tabela com Campo Array #39682

24/10/2003

0

CREATE TABLE ´TABARRAY´
(
´CODIGO´INTEGER NOT NULL,
´NOME´VARCHAR(20),
´LINGUA´VARCHAR(15)[1:5] ,
PRIMARY KEY (´CODIGO´)
);

acima esta minha tabela de testes...

como faço p/ inserir dados nela via insert?

tentei
insert into tabaray (codigo,nome,lingua[1]) values (1,´nome´,´portugues´)

+ ele da erro


Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 39 [ Statement: insert into tabaray (codigo,nome,lingua[0]) values (1,´nome´,´portugues´)


como faço p/ inserir dados e depois recuperar?

alguém tem algum exemplo?

grato


Rfpsatin

Rfpsatin

Responder

Posts

24/10/2003

Afarias

Não use arrays com Interbase (ou Firebird) -- Os arrays praticamente não podem ser utilizados via SQL.


T+


Responder

Gostei + 0

25/10/2003

Rfpsatin

Não sei se entendi errado + parece q só com stored procedure então...

blz, vou deixar p/ lá já q não da p/ trabalhar via sql

abraço


Responder

Gostei + 0

27/10/2003

Afarias

|Não sei se entendi errado + parece q só com stored procedure então...

Não, nem em Stored Procedures -- só via API


|blz, vou deixar p/ lá já q não da p/ trabalhar via sql

Sábia decisão. :wink:


T+


Responder

Gostei + 0

27/10/2003

Rfpsatin

Salve Colega, acho q da sim, da uma olhada neste exemplo do employee.gdb q vem na instalação do IB

COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;

/* Stored procedures */

CREATE PROCEDURE SHOW_LANGS 
(
  CODE VARCHAR(5),
  GRADE SMALLINT,
  CTY VARCHAR(15)
)
RETURNS
(
  LANGUAGES VARCHAR(15)
)
AS
BEGIN EXIT; END ^


ALTER PROCEDURE SHOW_LANGS 
(
  CODE VARCHAR(5),
  GRADE SMALLINT,
  CTY VARCHAR(15)
)
RETURNS
(
  LANGUAGES VARCHAR(15)
)
AS
DECLARE VARIABLE i INTEGER;
BEGIN
  i = 1;
  WHILE (i <= 5) DO
  BEGIN
    SELECT language_req[:i] FROM joB
    WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty)
           AND (language_req IS NOT NULL))
    INTO :languages;
    IF (languages = ´ ´) THEN  /* Prints ´NULL´ instead of blanks */
       languages = ´NULL´;         
    i = i +1;
    SUSPEND;
  END
END
 ^

SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;



Responder

Gostei + 0

27/10/2003

Afarias

Como eu disse:: ´Os arrays praticamente não podem ser utilizados via SQL.´ -- note o *praticamente* ...

Realmente, é possível SELECIONAR ... mas, para por ai! não é possível inserir ou atualizar. Para isso vc tem q usar API.

Alguns componentes (IBO e FIB por exemplo) implementam o uso de ARRAYS usando a API do IB.


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar