INSERT E UPDATE EM MYSQL

HELIO.COSTA 22/07/2011 18:43:02
#379776
o que esta errado no codigo,

Set adoLocTec = New ADODB.Recordset
Sql = [Ô]Select * from LocTec where Data = [ô][Ô] & VerData & [Ô][ô] and Tecnico = [ô][Ô] & VerTecnico & [Ô][ô] order by Data[Ô]
adoLocTec.Open Sql, gConexao, adOpenStatic, adLockOptimistic, adCmdText
If adoLocTec.EOF Then
If VerServico <> [Ô][Ô] Then gConexao.Execute [Ô]INSERT INTO LocTec (Data,Tecnico,Servicos) values([Ô] & VerData & [Ô],[Ô] & VerTecnico & [Ô],[Ô] & VerServico & [Ô][Ô]
Else
gConexao.Execute [Ô]UPDATE LocTec SET Data = [Ô][Ô][Ô] & VerData & [Ô][Ô][Ô], Tecnico = [Ô][Ô][Ô] & VerTecnico & [Ô][Ô][Ô], Servicos= [Ô][Ô][Ô] & VerServico & [Ô][Ô][Ô][Ô]
End If
MGALDINO 22/07/2011 20:59:11
#379781
Quais sao os tipos de dados dos campos.
Aonde esta a chave Primaria?

DIM STRSQL AS STRING

STRSQL = [Ô]INSERT INTO LOCTEC (CODIGO,DATA,TECNICO,SERVICOS) VALUES ( [Ô]
STRSQL = STRSQL & CODIGO & [Ô],[Ô]
STRSQL = STRSQL & [Ô][ô][Ô] & VerData & [Ô][ô],[Ô]
STRSQL = STRSQL & [Ô][ô][Ô] & VerTecnico & [Ô][ô],[Ô]
STRSQL = STRSQL & [Ô][ô][Ô] & VerServico & [ô][ô])[Ô]

gCONEXAO.EXECUTE STRSQL

Estou tratando os campos como se fosse varchar, fora o codigo caso vc nao tiver uma chave primaria no seu banco.
Caso tiver campo chave na sua tabela retire o campo codigo que coloquei.

Observei que no seu codigo vc esquece de fechar os parentes


EDERMIR 22/07/2011 21:36:21
#379786
HELIO.

Apesar de MGALDINO estar certo (falta fechar parenteses no comando INSERT), qual o erro que ocorre na execução do comando?
HELIO.COSTA 23/07/2011 08:31:08
#379799
Bem,
todos os campos são varchar
a chave primaria é o seq com auto incremento habilitado.
MARCELO.TREZE 23/07/2011 15:51:46
#379829
Resposta escolhida
tente assim

Set adoloctec = New ADODB.Recordset
With adoloctec
Sql = [Ô]Select * from LocTec where Data = [ô][Ô] & VerData & [Ô][ô] and Tecnico = [ô][Ô] & VerTecnico & [Ô][ô] order by Data[Ô]
.Open Sql, gConexao, adOpenStatic, adLockOptimistic, adCmdText
If (.EOF = True And .BOF = True) Then
If VerServico <> [Ô][Ô] Then gConexao.Execute [Ô]INSERT INTO LocTec (Data,Tecnico,Servicos) values([ô][Ô] & VerData & [Ô][ô],[ô][Ô] & VerTecnico & [Ô][ô],[ô][Ô] & VerServico & [Ô][ô][Ô]
Else
gConexao.Execute [Ô]UPDATE LocTec SET Data = [ô][Ô] & VerData & [Ô][ô], Tecnico = [ô][Ô] & VerTecnico & [Ô][ô], Servicos= [ô][Ô] & VerServico & [Ô][ô][Ô]
End If
End If
End With


bom o que acontece você não pode usar aspas duplas na query

gConexao.Execute [Ô]UPDATE LocTec SET Data = [Ô][txt-color=#e80000][Ô][/txt-color][Ô] & VerData & [Ô][txt-color=#e80000][Ô][/txt-color][Ô], Tecnico = [Ô][txt-color=#e80000][Ô][/txt-color][Ô] & VerTecnico & [Ô][txt-color=#e80000][Ô][/txt-color][Ô], Servicos= [Ô][txt-color=#e80000][Ô][/txt-color][Ô] & VerServico & [Ô][txt-color=#e80000][Ô][Ô][/txt-color][Ô]


você deve usar sempre aspas simples

gConexao.Execute [Ô]UPDATE LocTec SET Data = [ô][Ô] & VerData & [Ô][ô], Tecnico = [ô][Ô] & VerTecnico & [Ô][ô], Servicos= [ô][Ô] & VerServico & [Ô][ô][Ô]



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