Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
¿Como Continuar Programando En La Siguiente Linea?(SOLUCIONADO)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje ¿Como Continuar Programando En La Siguiente Linea?(SOLUCIONADO) 
 
Saludos a la Comunidad de Gambas-es...

Quieros Plantearles un Problema que me Ocurre y Quiero Presentarle la mayor fuente de Detalles para que puedan ayudarme con mas Facilidad, Primero dare los Detalles del Sistema Operativo y de mas.

Utilizo como sistema Operativo, Debian 5.0.1
gambas 2.1

Soy Nuevo en gambas Estoy Realizando un proyecto donde Guardo, Elimino, Consulto, Modifico, y otras cosas mas en Una base de datos Mysql.

La cuestion es que el proyecto me presenta el siguiente Error al Guardar.
sin_nombre

Como ya he dicho antes soy Nuevo en gambas vengo de Visual Basic. Y Pues conocimientos basicos yo creo que el Error se debe a que la Linea donde coloco los datos que deseo Guardar es muy larga, porque en verdad la tabla es extensa.

Por eso Trate de Cortar un poco el codigo de esa Linea identificando a cada TextBox con una letra o Numero. pero aun asi sigue siendo demasiado largo.
entonces quiero Saber Otro metodo que Pueda utilizar para guardar Datos que me permita continuar progrmando en la siguiente linea. O bueno no c si este mismo metodo me permite programar en la siguiente linea.

Estuve buscando en el foro pero la info no era muy Completa.

El metodo que uso para Guardar es el Siguiente.

PRIVATE hResul AS Result
PRIVATE db AS Connection

PUBLIC SUB Form_Open()
ModConexion.conexion
END

PUBLIC SUB Button1_Click() '<-----------Boton de Guardar

DIM query AS String
DIM a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, a1, a2, a3, a4, a5, a6, a7, a8, a9, b1 AS String
a = TextBox24.Text
b = TextBox1.Text
c = TextBox2.Text
d = TextBox3.Text
e = TextBox4.Text
f = TextBox44.Text
g = TextBox45.Text
h = TextBox46.Text
i = TextBox11.Text
j = TextBox7.Text
k = TextBox17.Text
l = TextBox9.Text
m = TextBox13.Text
n = TextBox15.Text
o = TextBox18.Text
p = TextBox19.Text
q = Textbox20.Text
r = TextBox21.Text
s = TextBox28.Text
t = TextBox42.Text
u = TextBox47.Text
v = TextBox48.Text
w = TextBox49.Text
x = TextBox50.Text
y = TextBox25.Text
z = TextBox26.Text
a1 = TextBox27.Text
a2 = ComboBox1.Text
a3 = TextBox43.Text
a4 = TextBox29.Text
a5 = TextBox31.Text
a6 = TextBox32.Text
a7 = TextBox30.Text
a8 = TextBox33.Text
a9 = TextBox34.Text
b1 = TextBox35.Text

query = "INSERT INTO SIET.movimiento set TipoMovimiento='" & Trim(UCase(Textbox)) & "', o1='" & UCase(Trim(b)) & "', CedulaCODP='" & Trim(UCase(c)) & "', ApeyNombreDP='" & Trim(UCase(d)) & "', FechaIngresoDP='" & Trim(UCase(e)) & "', GeneroDP='" & Trim(UCase(f)) & "', EstadoCivilDP='" & Trim(UCase(g)) & "', NivelAcadeDP='" & Trim(UCase(h)) & "', DepenDA='" & Trim(UCase(i)) & "', CodigoDA='" & Trim(UCase(j)) & "', CargoDA='" & Trim(UCase(k)) & "', CargoHoraDA='" & Trim(UCase(l)) & "', SueldoDA='" & Trim(UCase(m)) & "', CodigoDepenDP='" & Trim(UCase(n)) & "', NombreDepenDP='" & Trim(UCase(o)) & "', CodigoCargoDP='" & Trim(UCase(p)) & "', DenominacionCarDP='" & Trim(UCase(q)) & "', UbicacionDepenDP='" & Trim(UCase(r)) & "', AsignaturaDP='" & Trim(UCase(s)) & "', HorasDP='" & Trim(UCase(t)) & "', TipoNombramientoDP='" & Trim(UCase(u)) & "', TurnoDiurnoDP='" & Trim(UCase(v)) & "', TurnoNocturnoDP='" & Trim(UCase(w)) & "', BolivarianoDP='" & Trim(UCase(x)) & "', NumeroCuentaDB='" & Trim(UCase(y)) & "', CodigoDB='" & Trim(UCase(z)) & "', BancoDB='" & Trim(UCase(a1)) & "', TipoCuentaDB='" & Trim(UCase(a2)) & "', DatoRetroactivoDB='" & Trim(UCase(a3)) & "', CedulaDB='" & Trim(UCase(a4)) & "', CodigoDepenDB='" & Trim(UCase(a5)) & "', CodigoCargoDB='" & Trim(UCase(a6)) & "', ApeyNombreDB='" & Trim(UCase(a7)) & "', DestinoSalienteDB='" & Trim(UCase(a8)) & "', ObservacionesDB='" & Trim(UCase(a9)) & "', ApeyNombreAnalisDB='" & Trim(UCase(b1)) & "'"
  
  ModConexion.consulta(query)
  IF ModConexion.conexion() THEN
    Message.Info("Los Datos Se Han Guardado Correctamente")
      TextBox1.SetFocus

ENDIF
   ELSE
     Message.Error("Ocurrio un Error Mientras se Intentaban Guardar los Datos")


END
 



Una Pregunta sencilla a lo antes Expuesto creo que seria:

¿Como Continuar Programando en la Siguiente Linea, que signo coloco o algo parecido que me permita seguir programando en la siguiente linea?
creo que eso es lo que deseo saber. "Si es que es ese mi Problema"

O si Existe Otro metodo para Guardar datos.

Gracias de Antemano, Espero Pronta Respuestas... Gracias de verdad, y disculpa si el Planteamiento del tema no es Muy Bueno.. Acepto Concejos...
 



 
última edición por skaterleopoldo12 el Jueves, 21 Julio 2011, 20:38; editado 1 vez 
skaterleopoldo12 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Continuar Programando En La Siguiente Linea? 
 
Hola
Nunca se me había dado ese caso pero bueno ...

Para escribir una string en varias líneas lo que haces es escribir un renglon y empezar el siguiente con & de la siguiente manera

str=" ...... parte 1 ...."
   & " .... parte 2 ...."
   & " .... parte 3 ...."

De esa manera puedes confeccionar un string muy largo.

Otra cosa que se me ocurre es que puedes meterlo todo en un string y luego hacer el insert del string. Por ejemplo si haces lo anterior con una variable str entonces
ModConexión.consulta("INSERT INTO SIET.movimiento set " & str)

Tampoco veo la necesidad de tanta variable a .. b1 cuando puedes usar los textboxes directamente. De hecho si los utilizases como una colección podrías hacer un bucle recorriendo esa colección y todo ese largo código no tendría mas de cinco o seis lineas pero bueno ...

 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Continuar Programando En La Siguiente Linea? 
 
Ok si Voy a Probar a ver, lo de los textbox lo hice fue con esa Intencion, de Recortar por lo del error que me tira, gracias por responder tan rapido, voy a probar y Comento si Funciona!!!
 



 
skaterleopoldo12 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Continuar Programando En La Siguiente Linea? 
 
Amigo Skater...

hay miles de formas de hacerlo... pero  quisiera ser lo mas original posible  y hacertelo mas facil...

has algo:
1.- inserta un listbox1 en el formulario y llamalo query
2.- en las propiedades añade un list.... aparecera gráficamente la caja en donde escribiras... alli escribe corrido tu query
3.-  si en el formulario utilizas mas querys, añadelos como list o items de el listbox.. asi no te metes con el texto del codigo fuente.
4.- ya programando solo dices  que el   la cadena sql se llama query.list[0] para la primera y cambias el índice para referenciar las cadenas que quieras...    ModConexion.consulta(query.list[0])

Es solo una idea. Aclaro que no digo si es mejor peor, o nada.. lo que si es verdad es que liberas el fuente de tanto escrito....

PD. Coloca el listbox oculto y en un area no  visibel es solo un contenedor de query
 



 
última edición por Ronny el Jueves, 09 Junio 2011, 19:41; editado 2 veces 
Ronny - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Continuar Programando En La Siguiente Linea? 
 
Gracias por las respuestas tan rapidas, pero soy nuevo en esto no entiendo mucho lo que dicen, intente guiarme por lo q dice el Compañero Soplo, pero no entendi. he Hice esto pero quedo asi con comentarios.


DIM query AS String

'////////////////////////ESTO EN UNA LINEA//////////////////////
Str = " query = " INSERT INTO SIET.movimiento set TipoMovimiento = '" & Trim(UCase(TextBox24.Text)) & "', CedulaDP='" & UCase(Trim(TextBox1.Text)) & "', CedulaCODP='" & Trim(UCase(TextBox2.Text)) & "', ApeyNombreDP='" & Trim(UCase(TextBox3.Text)) & "', FechaIngresoDP='" & Trim(UCase(TextBox4.Text)) & "', GeneroDP='" & Trim(UCase(TextBox44.Text)) & "', EstadoCivilDP='" & Trim(UCase(TextBox45.Text)) & "', NivelAcadeDP='" & Trim(UCase(TextBox46.Text)) & "', CodigoDepenDA='" & Trim(UCase(TextBox11.Text)) & "', DepenDA='" & Trim(UCase(TextBox7.Text)) & "', CodigoDA='" & Trim(UCase( & "', DepenDA='" & Trim(UCase(TextBox17.Text)))) & "', CargoDA='" & Trim(UCase(TextBox9.Text)) & "', CargoHoraDA='" & Trim(UCase(TextBox13.text)) & "', SueldoDA='" & Trim(UCase(TextBox15.Text)) & "', CodigoDepenDP='" & Trim(UCase(TextBox18.Text))"
 
'////////////////ESTO EN LA OTRA LINEA///////////////////////  
 & "', NombreDepenDP='" & Trim(UCase(TextBox19.Text)) & "', CodigoCargoDP='" & Trim(UCase(TextBox20.Text)) & "', DenominacionCarDP='" & Trim(UCase(TextBox21.Text)) & "', UbicacionDepenDP='" & Trim(UCase(TextBox28.Text)) & "', AsignaturaDP='" & Trim(UCase(TextBox42.Text)) & "', HorasDocenteDP='" & Trim(UCase(TextBox22.Text)) & "', HorasAdminisDP='" & Trim(UCase(TextBox23.Text)) & "', HorasTotalDP='" & Trim(UCase(Label37.Caption)) & "', TipoNombramientoDP='" & Trim(UCase(TextBox47.Text)) & "', TurnoDiurnoDP='" & Trim(UCase(TextBox48.Text)) & "', TurnoNocturnoDP='" & Trim(UCase(TextBox49.Text)) & "', BolivarianoDP='" & Trim(UCase(TextBox50.Text)) & "', NumeroCuentaDB='" & Trim(UCase(TextBox25.Text)) & "', CodigoDB='" & Trim(UCase(TextBox26.Text)) & "', BancoDB='" & Trim(UCase(TextBox27.Text)) & "', TipoCuentaDB='" & Trim(UCase(ComboBox1.Text))
 
'//////////////////y ESTO EN LA OTRA LINE/////////////////

  & "', DatoRetroactivoDB='" & Trim(UCase(TextBox43.Text)) & "', CedulaDB='" & Trim(UCase(TextBox29.Text)) & "', CodigoDepenDB='" & Trim(UCase(TextBox31.Text)) & "', CodigoCargoDB='" & Trim(UCase(TextBox32.Text)) & "', ApeyNombreDB='" & Trim(UCase(TextBox30.Text)) & "', DestinoSalienteDB='" & Trim(UCase(TextBox33.Text)) & "', ObservacionesDB='" & Trim(UCase(TextBox34.Text)) & "', ApeyNombreAnalisDB='" & Trim(UCase(TextBox35.Text)) & "'"



Disculpen pero en verdad no entiendo muy bien.
 



 
skaterleopoldo12 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Continuar Programando En La Siguiente Linea? 
 
Una cosa no entiendo: ¿Por qué usar una sentencia sql si lo puedes hacer con gambas y mucho más sencillo?
Prueba algo así:
dim rs as result

rs=miconexion.create("mitabla")
rs!campo1=textbox1.text
rs!campo2=textbox2.text
rs!campo3=textbox3.text
etc...

rs.update

 

Mucho más simple, mucho más limpio y muchísimo más fácil de escribir...

Suerte
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Continuar Programando En La Siguiente Linea? 
 
Amigos no Entiendo lo que pasa es que el unico metodo que conosco y que me A Funcionado para Guardar Datos a una Base de datos en Mysql es el Siguiente

Inclusive asi Parecido es que Estoy Realizando el Proyecto en mi Trabajo a Diferencia de que el que estoy haciendo es mas largo la Linea del Boton Guardar

PUBLIC db AS NEW Connection

PUBLIC FUNCTION conexion() AS Boolean
 db.close()
 db.type = "mysql"
 db.host = "10.5.225.24"
 db.login = "laraujo"
 db.password = "*********"
 db.open()
 RETURN TRUE
 CATCH
 message.error(Error.text)
 RETURN FALSE
 END
 
PUBLIC SUB consulta(qry AS String)
 
 rs1 = db.Exec(qry)
 
END

PUBLIC SUB Button2_Click()  '<<<---------Boton Guardar
DIM query AS String

  query = "INSERT INTO SIET.datos set Titulo='" & Trim(UCase(TextBox1.Text)) & "', Autor='" & UCase(Trim(TextBox2.Text)) & "', Fecha='" & Trim(UCase(TextBox3.Text)) & "', Precio='" & Trim(UCase(TextBox4.Text)) & "', Descripcion='" & Trim(UCase(TextBox5.Text)) & "', Genero='" & Trim(UCase(TextBox6.Text)) & "'"

ModConexion.consulta(query)

  IF ModConexion.conexion() THEN

    Message.Info("Datos Guardados")

    TextBox1.Clear()
    TextBox2.Clear()
    TextBox3.Clear()
    TextBox4.Clear()
    TextBox5.Clear()
    TextBox6.Clear()
    TextBox1.SetFocus
  
 ELSE

      message.Error("Error al Guardar ")

ENDIF
END


Si Alguien me Explica un Mejor metodo Para Guardar Datos en Mysql que evite este error que me Causa le Agradeceria. lo q pasa es que en el Foro en algunos temas que he encontrado las Respuestas no son muy Completas o por lo menos para mi conocimiento...
 



 
skaterleopoldo12 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Continuar Programando En La Siguiente Linea? 
 
Te lo acabo de explicar en mi respuesta anterior.
Declaras un Result, creas con él un registro con el método Create , actualizas los campos y lo grabas con el método update.
Tal vez deberías leerte el libro de gambas. Lo tienes en la sección de descargas de este mismo portal.

Suerte.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Continuar Programando En La Siguiente Linea? 
 
shordi por leerme el Libro Fue que Logre Programar el Boton Guardar...
asi es como sale en el libro q lodebo hacer... y asi me funciono, hasta que se me presento el problema de guardar muchos datos!!!
De todas formas Gracias por Comentar....




[Aun no he Solucionado]
 



 
skaterleopoldo12 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Continuar Programando En La Siguiente Linea? 
 
Socio Buen dia, yo también me guié por un libro e hice movimientos desde gambas con bases mysql con ejemplos básicos, agendas, nominas, estudiantes, etc,,, no te puedo dar un consejo muy técnico de tu problema pero si te funciona a pequeña escala no es difícil hacerlo a gran escala

paso 1 prueba a pequeña escala guarda pocos datos y después de que esto funcione puedes incrementar el numero de datos si por este motivo falla puede ser que se presenten conflictos al manejar movimientos grandes entre gambas y mysql (supuesto 1) o se me ocurre que tengas problemas con los tipos de datos que guardas (2 supuesto)

paso 2 si ya sabes como guardar pocos datos y funciona entonces secciona tus datos en paquetes y guárdalos poco a poco eso sacrifica un poco de tiempo en ejecución pero debe de ser imperceptible para el usuario.

Por ejemplo para guardar un campo nombre + campo apellido esto se hace en una sola linea de instrucción pero igual se podría seccionar primero guardar el campo nombre, y luego guardar el campo apellido.....(supuesto) ,,,(supuesto)...
ya sabes no soy experto pero si recursivo no es una programación elegante pero te dará resultados

Marlon Perez
sin comentarios
 



 
marlon7106 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Cambiar Espacio Por Salto De Linea En Arra... Pablo-GNU General 1 Miercoles, 18 Agosto 2010, 18:00 Ver último mensaje
Pablo-GNU
No hay nuevos mensajes Insertar Una Linea En Un Archivo De Texto.... datobinario General 6 Jueves, 14 Marzo 2013, 14:00 Ver último mensaje
datobinario
No hay nuevos mensajes Seguir En Siguiente Linea De Codigo stongench General 8 Domingo, 14 Junio 2015, 10:33 Ver último mensaje
Shell
No hay nuevos mensajes ¿Como Formateo La Siguiente Fecha? gambafeliz General 9 Lunes, 26 Agosto 2019, 08:35 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron