INSERT COM SEQUENCIA

RENRS 08/08/2011 11:12:37
#381048
Olá,

Estou passando um sql por uma aplicação em vb6 para inserir dados numa tabela. a instrução:

Sql_Exec = [Ô]insert into MIX values ( SEQ_MIX.NextVal, [ô]AB[ô] ,1.385, 4.5,10,[ô][ô] ,[ô][ô] ,[ô][ô] ,[ô][ô], [ô]08-08-2011[ô])[Ô]   


provoca erro de [Ô]Too few parameters[Ô], mas se eu tirar o SEQ_MIX.NextVal e colocar um numero qualquer funciona.
logo gostaria de saber se tem algum jeito de fazer o insert com a sequencia funcionar.
Pois se eu executo direto no sqlPlus do oracle funciona.

outra coisa: alguem sabe como fazer o to_date() funcionar no vb6 ou alguma alternativa, pois o mesmo fala que nao e uma função reconhecida...

valeu
ASHKATCHUP 08/08/2011 12:09:09
#381055
Resposta escolhida
Da erro de Too Few Parameters pois... falta parametros.
Se você vai adicionar numa tabela com 10 campos, precisa passar 10 campos.
(Ou citar os campos que deseja inserir os valores e colocar seus dados, mas não é o teu caso)

Porque você não faz um [Ô]MAX(SEQ_MIX) +1 [Ô]?

E sobre a função...

Cdate

RENRS 08/08/2011 14:13:54
#381071
sim , o campo SEQ_MIX.NextVal é um dado integer (no caso do oracle - number)
estou usando o oracle xe, identy nao funciona no oracle, o correspondente seria o sequence, que estou usando no SEQ_MIX.NextVal

nao esta faltando paramentro, ja conferi varias vezes e no oracle funciona, o problema é quando roda pelo vb.

vou testar a função Cdate, depois fala se funciona ou nao.

valeu
RENRS 08/08/2011 15:03:10
#381080
ae, uma maneira que arrumei para resolver isso foi:

  Set snapOra = DB_ORA.CreateSnapshot([Ô]Select max(id_mix) as id_max from MIX[Ô])
mixId = snapOra!id_max + 1

Sql_Exec = [Ô]insert into MIX values ([Ô] & mixId & [Ô], [ô]AB[ô] ,1.385, 4.5,10,[ô][ô] ,[ô][ô] ,[ô][ô] ,[ô][ô], [ô]08-08-2011[ô])[Ô]


é uma gambiarra, mas por enquanto vai ser assim mesmo.
Vou fechar o post, mas se alguem tiver uma solução mais elegante, favor comentar.

valeu
Tópico encerrado , respostas não são mais permitidas