frajanic   19-08-2024, 12:22
#1
Tengo una tabla con 10 campos. Cuando inserto datos, en el último campo indefectiblemente me coloca 10, 20, 30, ... en el primero, segundo, tercer registro, etc. Si vuelvo a insertar datos, lo hace perfectamente, pero sigue poniendo decenas en el último campo, es decir, p.e. 40, 50, 60 y así sucesivamente. Y esto independientemente del valor de ese último campo, da igual que utilice una variable o una constante. ¡No me lo puedo explicar!
"INSERT INTO tabla (&1,&2,&3,&4,&5,&6,&7,&8,&9,&10)", variables y constantes.
Todos los campos los guarda perfectamente salvo el último.
Cansado de dar mil vueltas y otras tantas pruebas, eliminé un campo de la tabla (no el último), quedándome así con nueve campos. ¡Sorpresa!, funciona perfectamente.
¿Que puede suceder?
Gracias anticipadas.
Shordi   19-08-2024, 16:20
#2
Cuando los parámetros pasan de &9, debes encerrarlos entre corchetes &9,&{10},&{11}, etc.


Saludos

No podemos regresar
frajanic   19-08-2024, 19:05
#3
Muchísimas gracias. Jamás me había topado con esa información.
Supergracias.
Harpo   19-08-2024, 19:37
#4
Supongo que estará usando db.Subst o db.Exec.
En la ayuda de Gambas viene esa información que comenta Shordi: Database Request Quoting

Saludos Harpo.
frajanic   19-08-2024, 19:58
#5
He colocado &{10} y me da un error: "9 parámetros y 10 datos".
Por otra parte he consultado el enlace y veo esa información, aunque no comprendo mucho lo demás.
Me dices que utilice db,Subst o db.Exec , ¿Qué es?, ¿Cómo?
Gracias.

Perdona, ya funciona.
Era un error que no tenía que ver.
Muchas, muchísimas gracias.
PD: Sigo sin saber db.Subst y db.Exec
Última modificación: 19-08-2024, 20:07 por frajanic.
Harpo   20-08-2024, 11:50
#6
En Gambas hay un componente genérico de acceso a bases de datos: gb.db
Este componente nos permite trabajar con la clase DB
Dentro de la clase DB hay dos métodos estáticos: DB.SubstDB.Exec

Ambos métodos le permiten hacer lo que usted comenta en su primer mensaje
Código:
' Uso de Subst
sSql = DB.Subst("SELECT * FROM UserTable WHERE User = &1 AND Password = &2", sUser, sPassword)
hResult = DB.Exec(sSql)

'Uso de Exec
hResult = DB.Exec("SELECT * FROM UserTable WHERE User = &1 AND Password = &2", sUser, sPassword)

Saludos, Harpo
frajanic   20-08-2024, 12:20
#7
Yo estoy utilizando:
rsDie = $con.Exec("select IdD from TablaD")
Y hasta ahora no he tenido problemas.
Ahora me encuentro un problema que no me explico:
Selecciono una fecha en un DateBox y aparece la fecha correcta y en formato "dd/mm/yyyy", acto seguido la traspaso a un ListBox:
 ListBox1.Add(DateBox1.Value)
En el ListBox aparece la fecha con un día menos y con formato "mm/dd/yyyy"
Si selecciono fechas de una tabla que están en formato correcto, vuelve a suceder lo mismo, presenta un día menos y en formato "mm/dd/yyyy" .
¿Qué sucede? No lo puedo entender.
Gracias.
Harpo   20-08-2024, 12:44
#8
Supongo que es un problema con los tipos de datos.
DateBox1.Value es tipo Date
El método Add del ListBox1 requiere un String

Pruebe con:
Código:
ListBox1.Add(Str$(DateBox1.Value))

Saludos, Harpo.
frajanic   20-08-2024, 13:11
#9
No se me ocurrió. Llevaba horas buscando, probando. 
Nuevamente muchísimas gracias.
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.