Páginas (3): 1 2 3   
jorge trejos   29-02-2024, 17:17
#1
Hola gente
He avanzado un programa que he tenido dificultades de hacer, sin embargo ahora me esta dando un error de conexión a base de datos que rotundamente no entiendo. Realmente no se que pasa... les adjunto el programa en zip  les agradecería a quien me explique por qué pasa, pues ya no logro entender ...a ojos de un profesional debo ser un desorden... agradecería un consejo  para mejorar el punto.

Adjunto el link de mediafire ya que dice que el zip es muy pesado.

https://www.mediafire.com/file/rj83kiy16...2.zip/file

Saludos y gracias de antemano

Tener la ventaja lista es primero
Shell   29-02-2024, 23:03
#2
Hola Jorge.

Como es un mensaje de base de datos, el administrador cuando pueda lo moverá al foro de base de datos.
El cedular o número de teléfono no es correcto el que dice la etiqueta. Pero eso es cuestión de probar con
cualquiera de los que existe en la base de datos.

El tuyo por ejemplo es este:

celular: 64617756
cedula: 112230184

Una vez se entra se muestra un menú de comandos/pedidos/comidas que no parece activo aún

Ahora bien, el error se produce al añadir un cliente. Es este:

[Imagen: NTgtaCT.png]

Esta es la linea de inserción:

Código:
 $Result = Mod.$Conn.Exec("insert into TblClientes values (&1,&2,&3,&4,&5,&6,&7,&8,&9)", Null, txtnombre.text, txtcedula.text, txtemail.text, txtcelular.text, txtdir1.text, txtdir2.text, chk1.value, chk2.Value)

Ademas no encuentra los archivos de sonido, de esto, o es la ruta, que no es la adecuada o que no existe.
Se pueden desactivar temporalmente, comentando la línea, para continuar viendo el problema de la consulta de la base de datos.

La tabla del cliente tiene un campo que no se añade valor en esa consulta, es el del total de compra.
Existe en la tabla, pero no lo añades.

[Imagen: mERDpOj.png]


Saludos
Última modificación: 29-02-2024, 23:06 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
guizans   29-02-2024, 23:14
#3
Veo que Shell se me ha adelantado, pero de todas formas dejo la respuesta, por aquello de que ya la escribí Tongue

Código:
$Result = Mod.$Conn.Exec("insert into TblClientes values (&1,&2,&3,&4,&5,&6,&7,&8,&9)", Null, txtnombre.text, txtcedula.text, txtemail.text, txtcelular.text, txtdir1.text, txtdir2.text, chk1.value, chk2.Value)

Aquí creo que encontré un error:

Código:
$Result = Mod.$Conn.Exec("INSERT INTO TblClientes(nombre, cedula, email, celular, dir1, dir2, contr, vip) VALUES (&1,&2,&3,&4,&5,&6,&7,&8)", txtnombre.text, txtcedula.text, txtemail.text, txtcelular.text, txtdir1.text, txtdir2.text, chk1.value, chk2.Value)
Mod.$Conn.Commit

Como puedes comprobar, en tú declaración no pones que datos tienes que rellenar en la base de datos, al contrario que mi declaración. Si te fijas, en tu sentencia, el primer valor que le pasas en Null, supongo que significa que no le pasas ningún dato al campo ID, ya que veo que es un dato autoincrementado, por lo tanto, cuando creas una nueva entrada se va a incrementar automáticamente, no lo tienes que incluir en ninguna declaración. Otra cosa que hago para que me sea más cómodo de leer las sentencias SQLite es ponerlas en mayúsculas, no es obligatorio, pero desde mi punto de vista mejora mucho la lectura de la sentencia.

También me ha dado un error que falta un archivo de audio en el proyecto, pero no recuerdo los pasos que seguí para que me diera ese error Confused

Espero haberte ayudado.

Un saludo.
Última modificación: 29-02-2024, 23:48 por guizans.
Shell   29-02-2024, 23:25
#4
Vamos a añadirle que inserte un valor más, por ejemplo que inserte el valor cero, no ha comprado aún nada.

Código:
Try $Result = Mod.$Conn.Exec("insert into TblClientes values (&1,&2,&3,&4,&5,&6,&7,&8,&9,&10)", Null, txtnombre.text, txtcedula.text, txtemail.text, txtcelular.text, txtdir1.text, txtdir2.text, chk1.value, chk2.Value, 0)

Eso devuelve un error aquí: Diciendo valor nulo. Son todos, ¿ la conexión está abierta ?. ( no ).

Código:
Public Sub agregardatos()

  txtid.text = $Result["id"]
....

End

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
guizans   29-02-2024, 23:43
#5
Primero hace esto:
Código:
Para después llamar a la función agregardatos()
[code]
Public Sub agregardatos()

      txtid.text = $Result["id"]
        txtnombre.Text = $Result["nombre"]
          txtcedula.text = Str($Result["cedula"])
            txtemail.text = $Result["email"]
              txtcelular.text = Str($Result["celular"])
                txtdir1.text = $Result["dir1"]
                  txtdir2.text = $Result["dir2"]
                    chk1.value = $Result["contr"]
                      chk2.value = $Result["vip"]
                        vlb1.value = $Result.Index + 1
End

El problema que veo es que se le ha olvidado indicar que índice del Result es el que tiene que mostrar.
Código:
$Result.MoveLast

En caso de querer mostrar el último registro de la base de datos.
Me acabo de percatar que la variable $Result está declarada como variable de clase y como variable dentro del método btnagregar_Click(). Hay que eliminar esta última declaración.
Última modificación: 29-02-2024, 23:50 por guizans.
jorge trejos   01-03-2024, 19:24
#6
Cielo santo...leeré con calma todo lo que me indican  lamento lo del archivo de sonido es que se hizo muy pesado y no sabia como mandarlo  y le empece a quitar cosas ... y al final recordé mediafire... arreglare eso y lo reenviare para que lo vean ...no soy programador me gusta ..pero no le entiendo a veces... voy a revisarlo todo y veré como me va  les envia actualizacion en los proximos días un saludo bendiciones gracias por la ayuda

Tener la ventaja lista es primero
jorge trejos   02-03-2024, 01:21
#7
Saludos de nuevo ... he estructurado algunas cosas con el sonido que daba error y agregado corregido el problema de la inserción de datos peero.. pues ahora pece a que abro la base de datos en el FMain ... lo oculto pero no la cierro.... debería estar abierta....creo .... bueno pero no... no se como o donde debo ahora abrir la base de datos  que es  lo que no entiendo que hago mal ? les adjunto mi código por enlace d mediafire    https://www.mediafire.com/file/13tdzjt42...2.zip/file     una cosa mas.... en el menu ventas  no se como implementar una lista de las cosas elejidas por el cliente , arriba del label TOTAL  alguna sugerencia ?
saludos bendiciones

Tener la ventaja lista es primero
guizans   02-03-2024, 14:39
#8
(02-03-2024, 01:21)jorge trejos escribió: oculto pero no la cierro.... debería estar abierta....creo .... bueno pero no... no se como o donde debo ahora abrir la base de datos  que es  lo que no entiendo que hago mal ?

Hola.

Lo primero, y no te ofendas, es mejorar la forma en que escribes las preguntas en el foro, me ha costado un poco deducir lo que querías preguntar.
Contestando a la primera, si abres la base de datos en el formulario principal (FMain) y no lo cierras la base de datos sigue abierta para todos los formularios. Yo lo que hago es abrirla la base de datos según arranca el programa, como haces tú, y no la cierro hasta que se termina el programa. En el FMain pongo un evento que detecte el cierre de la ventana.
Código:
Public Sub Form_Close()
  Mod.cerrar()
End
Y en el módulo Mod pongo el método que se encarga de cerrar la base de datos.
Código:
Public Sub cerrar()
 $Conn.Close
End
(02-03-2024, 01:21)jorge trejos escribió: en el menu ventas  no se como implementar una lista de las cosas elejidas por el cliente , arriba del label TOTAL  alguna sugerencia

Lo primero, ¿cómo se accede al menú ventas? Veo que el botón tiene la propiedad Visible en False. Con lo de la lista, una forma es usar un GridView. Para usar correctamente el GridView te recomiendo que leas esto. Te subo el programa con un ejemplo de funcionamiento del GridView, te toca a ti rellenarlo, ya que es muy básico, pero te puede dar una idea de como seguir. El GridView también acepta eventos, es decir, puedes seleccionar una fila y al hacerlo hacer que se muestren dos botones para borrar elementos o aumentar el número de un elemento, etcétera.
Pinto
Cualquier duda no dudes en preguntar.
Un saludo,
jorge trejos   04-03-2024, 19:14
#9
Hola mucha gracias por darme ayuda ...  sé que tengo muchos problemas de lógica y estructura, he aprendido solo pero el camino ha sido sin guía... No me rendiré ... bajaré el programa y revisaré y  veré lo del gridview y volveré... lo prometo ... esta vez reabriré el post en la sección base de datos ..

Tener la ventaja lista es primero
Shell   04-03-2024, 23:53
#10
Le paso un mensaje por privado a nuestro administrador para que lo pase al foro de base de datos.
Para cuando el tenga tiempo y lo mueva.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Páginas (3): 1 2 3   
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.