Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problemas con codigo SQL AYUDA URGENTE!!!

Estas en el tema de Problemas con codigo SQL AYUDA URGENTE!!! en el foro de Bases de Datos General en Foros del Web. Hola a todos Tengo un problema con un codigo SQL, tengo una aplicacion en Visual Basic que se comunica con una base de datos en ...
  #1 (permalink)  
Antiguo 27/07/2004, 16:32
 
Fecha de Ingreso: diciembre-2003
Mensajes: 69
Antigüedad: 20 años, 4 meses
Puntos: 0
Problemas con codigo SQL AYUDA URGENTE!!!

Hola a todos

Tengo un problema con un codigo SQL, tengo una aplicacion en Visual Basic que se comunica con una base de datos en Access, el codigo que me da problemas es el siguiente

Una funcion que agrega un experimento en la base de datos, todos los parametros se los pasa el usuario en un formulario en visual basic
Hasta la parte de creear los strSQL va bien, el problema esta en el segundo execute (esta marcado mas abajo) al llegar ahi se va directamente a la etiqueta de error y me aparece un mensaje que dice que esta mal la sintaxis, yo verifique 1000 veces que los parametros sean los correctos y esten en el orden correcto, lo que si tengo es que hay unos tipos en la base de datos que no son string, por ejemplo la fechaIni, fechaFin, toleranciaT, toleranciaH, toleranciaVA y tiempomuestra, son fechas (los dos primeros), decimales los siguientes 3 y entero el ultimo. Pero para probar los puse todos como texto en al base de datos y tampoco me funciono, alguien me puede ayudar???
Y por otro lado, como hago para manejar esos datos que son enteros, decimales o fechas con sql??


Public Function addExperimento(nombre As String, descripcion As String, fechaIni As String, fechaFin As String, idCamara As String, toleranciaT As String, toleranciaH As String, toleranciaVA As String, tiempomuestra As String, idPersona As String, conexion As ADODB.Connection) As Boolean
Dim strSQL As String
Dim strSQL2 As String
Dim strSQL3 As String
Dim str1 As String
Dim idExperimento As Integer
On Error GoTo addExpError

Set cmd = New ADODB.Command
Set cmd.ActiveConnection = conexion
Set rs = New ADODB.Recordset
'.........................................
strSQL = "Select * from Experimento2"
cmd.CommandText = strSQL
Set rs = cmd.Execute
idExperimento = rs.RecordCount

strSQL = "Insert into Experimento (ID_experimento, Nombre_exp, Descripcion_exp, Fecha_inicio, Fecha_finalizacion, ID_camara, ToleranciaT, ToleranciaH, ToleranciaVA, Tiempo_muestra, ID_persona) values ('"
'---------------------
strSQL2 = idExperimento & "','" & nombre & "','" & descripcion & "','" & fechaIni & "','" & fechaFin & "','" & idCamara & "','" & toleranciaT & "','" & toleranciaH & "','" & toleranciaVA & "','" & tiempomuestra & "','" & idPersona & "')"
strSQL3 = strSQL & strSQL2
'---------------------

cmd.CommandText = strSQL
cmd.Execute ' AQUI ESTA EL PROBLEMA

addExperimento = True
Exit Function

'...........................................
addExpError:
addExperimento = False

MsgBox "ERROR: " & Err.Description & Err.Number
Exit Function
End Function
  #2 (permalink)  
Antiguo 27/07/2004, 17:48
Avatar de Atonovich  
Fecha de Ingreso: diciembre-2002
Ubicación: ...
Mensajes: 117
Antigüedad: 21 años, 5 meses
Puntos: 0
¿Cual es el error ADO que te marca? es de ADO? es de sintaxis?
__________________
" El hombre es una invención de Dios o Dios es una invención del hombre..."
  #3 (permalink)  
Antiguo 27/07/2004, 20:48
 
Fecha de Ingreso: diciembre-2003
Mensajes: 69
Antigüedad: 20 años, 4 meses
Puntos: 0
No es un error ADO, es de sintaxis del string SQL.
Por cierto, probe ese mismo codigo con una tabla mas sencilla de solo dos elementos y lo hace, pero a la hora de ver en la base de datos Access no me muestra los datos supuestamente agregados, pero si lo quiero agregar a mano desde el mismo access me dice que ese registro esta ocupado, pero no veo ningun dato
  #4 (permalink)  
Antiguo 28/07/2004, 04:23
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 1 mes
Puntos: 0
Si has copiado el texto tal y como lo tienes, el problema es, que has puesto que cargue strSQL, y según tu código strSQL3 es el que tiene la instrucción completa, strSQL es sólo una parte

Saludos
  #5 (permalink)  
Antiguo 28/07/2004, 08:37
 
Fecha de Ingreso: diciembre-2003
Mensajes: 69
Antigüedad: 20 años, 4 meses
Puntos: 0
aggghh tienes razon, es que antes lo tenia todo en el string strSQL y luego lo cambie concatenandolo con otros dos y no lo cambie al cargarlo.

gracias, voy a ver si ahora funciona bien
Aunque yo hice la prueba con una tabla mas sencilla y supuestamente lo hizo bien, pero al ir a la base de datos a corroborarlo no tenia ningun dato.. a que se puede deber eso?

otra preguntita a ver si me puedes ayudar, quiero ahora cargar los datos que estan en la base de datos a un formulario, yo le muestro al usuario en un DataList los nombres de un experimento por ejemplo, y el selecciona el que quiera cargar o modificar, hasta ahi lo hago todo bien, el problema es que cuando me lo traigo lo hago en una estructura rs que es un ADODB.Recordset, yo pensaba que en esa estructura me traia todos los datos que quiero mostrarle al cliente, pero no es asi, como hago para traermelos y poderselos mostrar al usuario? que no sea con un DataGrid, yo quiero mostrarselos tal y como el los introduce al principio.

Este es el codigo

Código:
Set cmd = New ADODB.Command
    Set cmd.ActiveConnection = con
    Set rs = New ADODB.Recordset
    '....................................
    
    ' Seleccionar de la tabla Experimento un experimento cuyo ID sea ID_Experimento
    strSQL = "Select * from Experimento where ID_experimento = "
    strSQL = strSQL & id & ""

    
    cmd.CommandText = strSQL
    
    Set rs = cmd.Execute
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:32.