[firebase-br] Ajuda em Insert

Otto ottofuch em terra.com.br
Qua Jun 7 21:52:14 -03 2006


Não fique aborrecido comigo, mas compre o livro Firebird Essencial do nosso
colega Carlos Cantu para obter uma visão de conjunto. Quanto ao SQL do
Access e do Firebird há diferenças (a data no Acces é escrita como
#12/31/2005# e no Firebird como '31.12.2005' para ser apresentado no formato
DDMMAAAA, e como '12/31/2005' para ser apresentado no formato MMDDAAAA.
O campo MEMO do Access é um subtipo do tipo de campo BLOB (Binary Large
OBject).
[]´s
Otto
----- Original Message ----- 
From: "Paulo Henrique Mendes Martin" <paulo.mendes87 em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, June 07, 2006 7:25 PM
Subject: [firebase-br] Ajuda em Insert


Hoje estava eu migrando meu mísero banco de dados ACCESS para FIREBIRD, Ok,
achei que não ia ser muito complicado, quando me deparei com UPDATE, tentei
fazer via códgio (assumam que estou usando VB6) mas nada deu certo, pelo
contrário foi pior ainda.

As dúvidas são o seguinte.

Analogamente o que é um Memo no firebird??? Eu fiz um varchar de size 200.

porque isso não funciona.

UPDATE [TABELA] SET [TABELA].[CAMPO]="[VALOR]"

assumindo que eu esteja em um for e valor é uma string Null??? Ele da erro
de compatibilidade no SQL comand por causa de ser nulo, então tive que
tratar isso e fazer a variável valer "" para entrar, creio que não faça
sentido isso.

E porque o mesmo UPDATE não funciona quando a data é nula???Qual é o
equivalente nulo a data?? Pois também dá erro de compatibilidade.
A princípio eu estou tratando tudo isso no meu for, tive que fazer isso para
tratar cada campo da minha tabela.

Eu consegui fazer a migração sob muita gambiarra, mas queria saber um jeito
de eu não ter que ficar tratando as variáveis quando elas são nulas, só para
esclarecer melhor esse é mais ou menos o meu código


F = Array("Campo1", "Campo2") ' Esse são os nomes dos campos da tabela do
Firebird
X = Array(Rec(Campo1), Rec(Campo2)) ' Aqui são os campos em Recordset da
tabela do Access

Rec.MoveFirst

Do Until Rec.EOF
   FOR Cont = 0 to 0
       sqlF = "INSERT INTO socios (" & F(Cont) & ") Values" "("&  ' " &
X(Cont) & " ' &")"
       cn.Execute (sqlF) 'cn é o banco Firebird
       FOR Cont2= 1 to 1
            sqlF="UPDATE socios SET socios." & F(Cont) & "=" ' & X(Cont) & "
'
            cn.Execute (sqlF)
        Next
     Next
Loop

E basicamente isso, eu fiz de cabeça agora, não sei se tem alguma coisa
errada, não sei se me expressei bem, mas caso haja dúvidas com minha dúvida
é só discorrer sobre esse assunto.
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa







Mais detalhes sobre a lista de discussão lista