Problemas Al Guardar En Una Tabla Con Varios ID


Objetivo: Problemas Al Guardar En Una Tabla Con Varios ID
necesito ayuda con algo por favor, tengo problemas para guardar los datos en la tabla con esta posee varios id
es decir cuando tiene su id principal y otros foráneos no guarda datos pensé que yo estaba mal porque la tabla era grande pero me consegui con el mismo problema en una tabla mucho mas chica que solo tiene 4 campos: idprincipal 2 campos y Id foraneo.. estoy trabajando con mysql y phpmyadmin

Perfil MP  
Objetivo: Re: Problemas Al Guardar En Una Tabla Con Varios ID
pon la estructura de la tabla tal como la muestra mysql:

show create table mitabla

y el código que usas para actulizar.

Con eso podemos ayudarte.

Perfil MP  
Objetivo: Re: Problemas Al Guardar En Una Tabla Con Varios ID
Asi como soy nuevo en gambas soy nuevo en el foro y no entendí lo que me pusistes :S donde hago eso? >.<

Perfil MP  
Objetivo: Re: Problemas Al Guardar En Una Tabla Con Varios ID
"Show create table `mitabla`" (donde mitabla es el nombre de tu tabla, claro)lo escribes en la pestaña SQL de tu phpmyadmin. Te dará una respuesta parcial y después tendrás que pulsar en "Opciones" y decir que te muestre textos completos y repetir la consulta. Copia y pega el resultado.

El código de actualización... no te cuento cómo se copia y pega de tu aplicación a éste foro, que sería un insulto a tus conocimientos de informática.

Suerte.

Perfil MP  
Objetivo: Re: Problemas Al Guardar En Una Tabla Con Varios ID
shordi escribió: [Ver mensaje]
"Show create table `mitabla`" (donde mitabla es el nombre de tu tabla, claro)lo escribes en la pestaña SQL de tu phpmyadmin. Te dará una respuesta parcial y después tendrás que pulsar en "Opciones" y decir que te muestre textos completos y repetir la consulta. Copia y pega el resultado.

El código de actualización... no te cuento cómo se copia y pega de tu aplicación a éste foro, que sería un insulto a tus conocimientos de informática.

Suerte.



Pff aqui esta me tarde porque mi pc se quemo T_T

convenio_centro_salud CREATE TABLE `convenio_centro_salud` (
`id_centro_salud` int(10) NOT NULL AUTO_INCREMENT,
`nombre_clinica` varchar(254) NOT NULL,
`rif_clinica` varchar(254) NOT NULL,
`direccion_clinica` varchar(254) NOT NULL,
`estado_clinica` varchar(254) NOT NULL,
`ciudad_clinica` varchar(254) NOT NULL,
`telefono_clinica` varchar(254) NOT NULL,
`fax_clinica` varchar(254) NOT NULL,
`director_clinica` varchar(254) NOT NULL,
`administrador_clinica` varchar(254) NOT NULL,
`paginaweb_clinica` varchar(254) NOT NULL,
`correo_clinica` varchar(254) NOT NULL,
`id_impuesto` varchar(254) NOT NULL,
`id_servicios_clinica` varchar(254) NOT NULL,
`id_personal_clinica` int(254) NOT NULL,
`id_especialidades_clinica` int(254) NOT NULL,
`id_instalaciones_clinica` int(254) NOT NULL,
`id_cantidad_salas` int(254) NOT NULL,
`id_medicos` int(254) NOT NULL,
`id_cuentas_clinica` int(11) NOT NULL,
PRIMARY KEY (`id_centro_salud`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1


Otra cosa que pude notar no se si es un bug o un error y creo que por esto es que no me guarda en la base de datos :S

aqui la funcion:

Public operacion As String

Public Sub RegistrarConvenioCentroSalud(rifcli As String, direccioncli As String, estadocli As String, ciudadcli As String, telefonocli As String, faxcli As String, directorcli As String, administradorcli As String, paginawebcli As String, correocli As String)
Dim Z As String
If operacion = 1 Then
Z = "Inser Into convenio_centro_salud(rif_clinica, direccion_clinica, estado_clinica, ciudad_clinica, telefono_clinica, fax_clinica, director_clinica, administrador_clinica, paginaweb_clinica, correo_clinica)values('" & rifcli & "','" & direccioncli & "','" & estadocli & "','" & ciudadcli & "','" & telefonocli & "','" & faxcli & "','" & directorcli & "','" & administradorcli & "','" & paginawebcli & "','" & correocli & "')"
Message.Info("Datos Guardados exitosamente")
Try conexion.cn.Exec(Z)
Endif
End


Boton guardar del formulario

Public Sub Button1_Click()

If Button1.Tag = 1
RegistroConvenioCentroSalud2.operacion = "1"
RegistroConvenioCentroSalud2.RegistrarConvenioCentroSalud(rifclinica, direccionclinica.Text, estadoclinica.Text, ciudadclinica.Text, telefonoclinica.Text, faxclinica.Text, directorclinica.Text, administradorclinica.Text, paginaclinica.Text, correoclinica.Text)
limpiartextbox()
Endif
End

aqui el supuesto BUG

bug

Si puedes notar cuando esta haciendo la visualización de las variables de la función en la primera que es RIF sale IF, 'WTF y creo que por eso no me guarda :S Se come la primera letra de la variable sea con esa o con cualquier otra el error persiste! :S

última edición por OneErick el Miercoles, 20 Marzo 2013, 17:48; editado 2 veces
Perfil MP  
Objetivo: Re: Problemas Al Guardar En Una Tabla Con Varios ID
Para empezar, sin tiempo de analizar tu código pones z=inser into yu deberías poner insert into , por si no lo notas te falta la "T" al final. Si trabajas con phpmyadmin siempre puedes probar tus consultas en el sql del mismo para ver si funcionan.
Saludos

Objetivo: Re: Problemas Al Guardar En Una Tabla Con Varios ID
Por partes. Sobre tu base de datos:
1.- Veo que la tabla se llama convenio_centro salud... pero contiene datos de una clínica. Si
a)"centro de salud" se compone de una clínica, perfecto, aunque entonces no sé por qué todos los campos contienen "clinica" y no "centro_salud". Creo que la tabla debería llamarse clinicas y punto.
b) Si un centro de salud se compone de varias clinicas... mal. confundes los conceptos mezclándolos en una sola tabla.

2.- Veo que declaras todos lo campos como not null. ¿Y si una clínica no tiene fax, por ejemplo? ¿no permites que el campo quede en blanco? Todo no nulo puede ser, seguramente es, demasiado restrictivo. Reserva esa cualidad para los campos importantes (id_centro_salud, nombre_clinica, etc)

3.- Repites una y otra vez la plabra clinica en cada campo. Eso sobra ¿Cómo piensas consultar tu base? Lo lógico es usas un result o una sentencia sql. Si
a) usas un result, éste se llamará "clinica" o algo parecido (Dim clinica as result) y la mencion a los campos será -por ejemplo- if clinica!nombre_clinica > "" then... O sea que nos sobra una clinica.
b) en una sentencia sql puedes dar un alias al nombre de la tabla ("Select nombre_clinica from convenio_centro_salud clinicas", por ejemplo) con lo que el campo que retorna se llama "clinicas.nombre_clinica"... vuelve a sobrar una clinica.
En otras palabras: Salvo los campos que son claves primarias o foráneas (sobre los cuales es conveniente aplicar nombres autocontenidos estandarizados) es mejor limitarse a que el campo defina sólo lo que es "nombre","direccion","localidad". Son nombres más cortos y que no dan lugar a confusión a la hora de consultar por lo que te he puesto en los puntos a y b más arriba.

4.- Defines varios campos como INT(254) No sé la cantidad de trillones que se pueden contar con 254 dígitos, pero me parece muy optimista en campos como "id_cantidad_salas". Si esos campos son, pretendenser, claves foráneas de otras tablas, con INT(11) (El default para mysql) van que chutan. Si son otra cosa... pues ajusta un poco, que no cuesta nada y ahorras espacio en la base de datos y en la memoria.

5.- Los últimos 8 campos "id_algo" parecen querer ser claves foráneas de otras tablas. Pero no entiendo el concepto. Tanto si pretendes establecer una relación uno a uno, un registro en el padre, por un registro en el hijo como uno a muchos un registro en el padre por uno o varios en el hijo, son los hijos los que portan la clave primaria del padre, como el apellido -de ahí la metáfora-, por lo que no tienen ningún sentido en la tabla primaria.

Hace poco cité en un hilo una frase que creo que me la voy a poner como firma: "Dame tu código y después de dos horas aún no sabré lo que hace tu programa. Dame tu estructura de datos y te diré si funcionará o no". Replantéate la estructura de du Base de datos entera (No sólo de esta tabla) y verás cómo todo lo demás va saliendo fácil. Si no... allá tú. Advertido estás.

En cuanto a tu "bug" te diré que no lo es, "ifcli" es el nombre con el que definiste la variable en la función ( Public function RegistrarConvenioCentroSalud( ifcli as integer... etc. etc.) El IDE te lo enseña como ayuda. Si quieres una pista... creo que el código que subiste es del módulo RegistrarConvenioSalud en tanto que en la función llamas a RegistrarConvenioSalud2. Seguro que en el 2, se llama ifcli a secas.
En cuanto a tu código dos cosas:
1.- pones el mensaje de éxito antes de haber hecho la operación... error. Si te falla engañas al usuario.
2.- En la query no rellenas todos los campos de la tabla (recuerda que los tienes todos a not null), no creo que así pueda funcionar.
Estudia el control de errores (TRY CATCH y FINALY) y pon alguna depuración de fallos, para que veas qué pudo fallar. Revisa el libro de gambas que te puedes descargar en éste portal.

Saludos.

última edición por shordi el Miercoles, 20 Marzo 2013, 19:43; editado 2 veces
Perfil MP  
Objetivo: Re: Problemas Al Guardar En Una Tabla Con Varios ID
Pues sabes que si pensé eso lo de la base de datos, el problema es que no tuve buen profesor de la materia e hice lo que pude con lo que imagine que sabia.. pero Gracias por tus consejos de verdad es mejor cuando te lo dice un programador a alguien que intenta serlo, y pues ya estoy buscando asesoramiento de la base de datos con alguien que de verdad sabe de ello..

Nota: No quieres ser mi profesor? XD

Gracias

Salud2

Perfil MP  
Objetivo: Re: Problemas Al Guardar En Una Tabla Con Varios ID
Tú pregunta en el foro. Si en tu pregunta se ve interés y trabajo, no dudes que siempre se te echará una mano. Mejor muchos profesores que uno solo.

Suerte.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1134s (PHP: -13% SQL: 113%)
Consultas SQL: 25 - Debug off - GZIP Activado