INSERT INTO NULL

IRENKO 06/10/2009 08:13:38
#324542
Estou tentado fazer um insert into em um determinado campo da tabela porem o mesmo não esta aceitando um valor nulo ou vazio, dá a msg de erro:

O campo [ô]dadosCab.Grupo[ô] não pode ser uma sequencia de caracteres de comprimento nulo.

O campo esta configurado para permitir valor de comprimento zero e o mesmo é texto.

já tentei assim:

strSQL = strSQL & [Ô][ô][Ô] & IIf(TxtGrupo.text = [Ô][Ô], Null, TxtGrupo.text) & [Ô][ô],[Ô]

assim:

strSQL = strSQL & [Ô][ô][Ô] & IIf(IsNull(TxtGrupo.text), Empty, TxtGrupo.text) & [Ô][ô],[Ô]

assim:

strSQL = strSQL & [Ô][ô][Ô] & IIf(Trim(TxtGrupo.text) = [Ô][Ô], Null, TxtGrupo.text) & [Ô][ô],[Ô]

e assim:

strSQL = strSQL & [Ô][ô][Ô] & IIf(IsNull(TxtGrupo.text), [Ô][Ô], TxtGrupo.text) & [Ô][ô],[Ô]

e nada!!!

Como resolver isso? O banco e access.
ROBIU 06/10/2009 08:30:56
#324545
quando o campo for vazio, você está tentando salvar como [ô]Null[ô], [ô][ô], [ô]Empty[ô]

[ô]tenta assim:
strSql = strSql & IIf(txtgrupo.Text = [Ô][Ô], Null, [Ô][ô][Ô] & txtgrupo.Text & [Ô][ô][Ô]) & [Ô],[Ô]
[ô]ou assim
strSql = strSql & IIf(txtgrupo.Text = [Ô][Ô], Empty, [Ô][ô][Ô] & txtgrupo.Text & [Ô][ô][Ô]) & [Ô],[Ô]
[ô]Ou assim:
strSql = strSql & IIf(txtgrupo.Text = [Ô][Ô], [Ô][Ô], [Ô][ô][Ô] & txtgrupo.Text & [Ô][ô][Ô]) & [Ô],[Ô]
THIAGO.CC 06/10/2009 08:32:24
#324546
IRENKO,

Tenta assim.

If IsNull(TxtGrupo.text) = False or TxtGrupo.text <> [Ô][Ô] Then
strSQL = strSQL & TxtGrupo.text & [Ô][ô],[Ô]
Else
strSQL = strSQL & Null & [Ô][ô],[Ô]
ou
strSQL = strSQL & [Ô][ô] [ô][Ô] & [Ô],[Ô]
End If

Bom pelo menos foi o que eu entendi.

IRENKO 06/10/2009 09:00:57
#324550
Testei as sugestões dos colegas, porem as mesmas da a mesma msg de erro.
EDERMIR 06/10/2009 10:45:42
#324559
IRENKO.
Se o campo está aceitando NULL, então NÃO FAÇA O INSERT COM ELE.

Se o valor do campo pode ser VAZIO, então coloque [Ô][Ô] no campo.

O NULL serve bem na ATUALIZAÇÃO.

Eu utilizo assim:

Wcommand = [Ô]insert into TABELA (CAMPO1,CAMPO2,CAMPO3) values ([ô]NOME[ô],[ô]NULL[ô],123)[Ô]
Wcommand = replace(Wcommand,[Ô][ô]NULL[ô][Ô],[Ô]NULL[Ô]) [ô]troca a STRING NULL por NULL
SQL_CONN.EXECUTE Wcommand
TECLA 06/10/2009 10:47:58
#324560
Experimente isso:

strSQL = strSQL & IIf(TxtGrupo.text = [Ô][Ô], [Ô]Null[Ô], [Ô][ô][Ô] & TxtGrupo.text & [Ô][ô][Ô])
ROBIU 06/10/2009 10:55:55
#324562
Citação:

O campo [ô]dadosCab.Grupo[ô] não pode ser uma sequencia de caracteres de comprimento nulo.
O campo esta configurado para permitir valor de comprimento zero e o mesmo é texto.



Esse campo está aceitando valores nulos? Tenta editar o registro direto na tabela access e vê se aveita nulo. manda o banco para ser analisado e posta o codigo e mensagem de erro.
IRENKO 06/10/2009 11:10:12
#324565
Esse é o codigo:

strSQL = [Ô]INSERT INTO DadosCab([LM_2],[Data],[Elaborado],[Cliente],[Grupo],[Ô]
strSQL = strSQL & [Ô][Contrato],[DataPrazo],[Desenho],[RevDesenho],[DesConjunto],[Ô]
strSQL = strSQL & [Ô][RevConj],[QuantX],[Equipamento],[Obs],[Ô]
strSQL = strSQL & [Ô][Servico],[TPEquip]) [Ô]
[ô] Valores
strSQL = strSQL & [Ô]VALUES([Ô]
strSQL = strSQL & [Ô][ô][Ô] & ListaNumero & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & TxtData.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & ComboProgramador.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Combo1X.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & TxtGrupo.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & ComboCT.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & IIf(Not IsDate(TxtPrazo.text), Null, Format(TxtPrazo.text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtDesenho1.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtRev1.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtDesenho2.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtRev2.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtQuant.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & TxtEspecificacao.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtObs.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtOs.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & [Ô]Lista[Ô] & [Ô][ô])[Ô]
Banco2.BeginTrans
Banco2.Execute (strSQL)
Banco2.CommitTrans

Robiu, bom, o campo da tabela é o de nome (Grupo) e TxtGrupo.text.

Edermir, como adapto a sua sugestão no meu codigo?
IRENKO 06/10/2009 11:12:43
#324566
O banco:

EDERMIR 06/10/2009 13:07:11
#324586
Veja as linhas alteradas
strSQL = [Ô]INSERT INTO DadosCab([LM_2],[Data],[Elaborado],[Cliente],[Grupo],[Ô]
strSQL = strSQL & [Ô][Contrato],[DataPrazo],[Desenho],[RevDesenho],[DesConjunto],[Ô]
strSQL = strSQL & [Ô][RevConj],[QuantX],[Equipamento],[Obs],[Ô]
strSQL = strSQL & [Ô][Servico],[TPEquip]) [Ô]
[ô] Valores
strSQL = strSQL & [Ô]VALUES([Ô]
strSQL = strSQL & [Ô][ô][Ô] & ListaNumero & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & TxtData.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & ComboProgramador.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Combo1X.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & TxtGrupo.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & ComboCT.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & IIf(Not IsDate(TxtPrazo.text), [Ô]Null[Ô], Format(TxtPrazo.text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô],[Ô] [ô]mudei esta linha
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtDesenho1.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtRev1.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtDesenho2.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtRev2.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtQuant.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & TxtEspecificacao.text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtObs.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Nnull(TxtOs.text) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & [Ô]Lista[Ô] & [Ô][ô])[Ô]
Banco2.BeginTrans
strSQL = replace(strSQL,[Ô][ô]NULL[ô][Ô],[Ô]NULL[Ô]) [ô]troca a STRING NULL por NULL
Banco2.Execute (strSQL)
Banco2.CommitTrans
ROBIU 06/10/2009 13:15:41
#324588
Eu testei aqui e não dá nenhum erro. Como o tipo de dados é Text, pode fazer direto:
strSQL = strSQL & [Ô][ô][Ô] & TxtGrupo.text & [Ô][ô],[Ô]


Veja no exemplo

Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas