SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: MindEye en Miércoles 5 de Noviembre de 2003, 16:34

Título: Re: No consigo actualisar un registro a SQL
Publicado por: MindEye en Miércoles 5 de Noviembre de 2003, 16:34
- Estoy intentando actualizar el registro especifico, en la base de datos, pero los campos, editando, y estado civil, no me cambian. ( Los campo son texto )

 - Por favor, si alguien ve lo que estoy haciendo mal, que me lo haga saber.

 - Gracias compañeros, aqui hos dejo lo que yo hago.

Set db = OpenDatabase(Conectando.Coneccion, , False, ";pwd=1234")

db.Execute "UPDATE Clientes SET Cliente=" & Text1(0) & " , SG=" & Siglas.Text & " , Direccion=" & Text1(3) & " , Numero=" & Text1(4) & " , Piso=" & Text1(5) & " , Puerta=" & Text1(6) & " , CP=" & Text1(7) & _
" , Poblacion=" & Text1(8) & " ,Provincia=" & Text1(9) & " ,Pais=" & Text1(10) & " , NIF=" & Text1(19) & " , Email =" & Text1(11) & " , Web = " & Text1(12).Text & _
" , Editando=""No"" , [Sociedad Civil]=" & iif(option.value,"Si","No") & " , [Fecha Alta]=" & Text1(13) & " WHERE (SELECT * FROM Clientes WHERE Clientes.[Id Cliente] = " & CLng(Text3.Text) & ");"
Título: Re: No consigo actualisar un registro a SQL
Publicado por: Brroz en Miércoles 5 de Noviembre de 2003, 16:56
Hola MindEye.

El fallo lo tienes en la cláusula WHERE que debería quedar de la siguiente forma:

" WHERE Clientes.[Id Cliente] = " & CLng(Text3.Text);"

Date cuenta que estabas utilizando una selección de registros como valor de comparación y sin compararla con nada. Algo como eso podría valer para filtrar registros comparando si están o no en una selección, por ejemplo:

WHERE Clientes.[Id Cliente] IN (SELECT OtraTabla.[Id Cliente] WHERE OtroCampo='El valor que sea')

Suerte, chao.
Título: Re: No consigo actualisar un registro a SQL
Publicado por: Brroz en Miércoles 5 de Noviembre de 2003, 17:05
Disculpas MindEye.

Ahora que leo bien (y mira que me lo decían en el colegio...) dices que son dos los campos que no te cambian, por lo que supongo que el resto sí (a pesar del detalle que apuntaba del WHERE...). Yo probaría usando las comillas de esta forma:

... & " , Editando='No' , [Sociedad Civil]='" & iif(option.value,"Si","No") & "' , [Fecha Alta]=" ...

A ver si así... prueba y ya contarás.
Abur
Título: Re: No consigo actualisar un registro a SQL
Publicado por: angelescj en Miércoles 5 de Noviembre de 2003, 18:38
Si en campo está declarado como numérico en la BD deberás hacer:
NombreDeCampo=valor
Si el campo está declarado como no numérico:
NombreDe Campo='valor'
Con una comilla simple a cada lado del valor.
Al usar comillas dobles,", estás terminando la cadena SQL

:good:
Título: Re: No consigo actualisar un registro a SQL
Publicado por: MindEye en Miércoles 5 de Noviembre de 2003, 19:54
- Ya lo he probado pero no me funciona, no lo entiendo.
Título: Re: No consigo actualisar un registro a SQL
Publicado por: MiguelPG en Miércoles 5 de Noviembre de 2003, 21:39
Hola a todos.
Yo no entiendo mucho de esto, pero habeis probado a quitar el "punto y coma" al final de la claúsula WHERE?
A mí a veces me dá problemas, lo quito y se soluciona.
WHERE Clientes.[Id Cliente] = " & CLng(Text3.Text) & ");"
Saludos
Título: No consigo actualisar un registro a SQL
Publicado por: angelescj en Jueves 6 de Noviembre de 2003, 08:45
Prueba esto:
dim pp as string
if option.value then
   pp="Si"
else
  pp="No"
end if

db.Execute "UPDATE Clientes SET Cliente=" & Text1(0) & " , SG=" & Siglas.Text & " , Direccion=" & Text1(3) & " , Numero=" & Text1(4) & " , Piso=" & Text1(5) & " , Puerta=" & Text1(6) & " , CP=" & Text1(7) & _
" , Poblacion=" & Text1(8) & " ,Provincia=" & Text1(9) & " ,Pais=" & Text1(10) & " , NIF=" & Text1(19) & " , Email =" & Text1(11) & " , Web = " & Text1(12).Text & _
" , Editando='No' , [Sociedad Civil]='" & pp  & " , [Fecha Alta]=" & Text1(13) & " WHERE (SELECT * FROM Clientes WHERE Clientes.[Id Cliente] = " & CLng(Text3.Text) & ");"