Hola Amigos aqui les traigo mi primer proyecto..! Espero que les ayude y les guste..!
Bueno me precento Soy José Chen de la ciudad de Panamá tengo 19 años y curso el primer año de Ing. Sistemas Informaticos. Me gusta la programacion ya que es mas que nada saber conocimientos y saber pensar un poco...!!
Aqui les dejo mi primer programa..!
Lo que hace este programa es Agregar un nombre y una edad y mostrarla en un ColumnView..!
Requisitos
- gambas 2 "Obviamente"
- Base de Datos MySql ( pueden crearla desde www.freesql.org )
Instrucciones
Creamos un nuevo proyecto en gambas y agregamos:
textbox con el nombre "nombre"
Combobox con el nombre "edad"
Button con el nombre "Agregar"
ColumnView lo dejamos con su mismo nombre "ColumnView1"
Les Agregan tambien si decean label para saber lo que la persona debe poner..! Quedaria asi
Codigo
PUBLIC cn AS Connection ''Declaracion de Variable para la coneccion
PRIVATE FUNCTION coneccion(query AS String) AS Result ''Funcion para conectar base de dato y ejecutar una sentencia
DIM res AS Result
cn = NEW Connection
cn.close
cn.Type = "mysql"
cn.Host = "FreeSQL.org"
cn.User = "gambas"
cn.Password = "gambas"
cn.Name = "nombreyedad"
cn.Open
res = cn.Exec(query)
RETURN res
END
PRIVATE SUB colvie() ''es un tipo de funcion pero no retorna valor es para cargar los datos a la ColumnView
DIM res AS Result
DIM i AS Integer
ColumnView1.Clear ''Borra todos los datos de ColumnView1
ColumnView1.Columns.Count = 2 ''Creo dos Columnas
ColumnView1.Columns[0].Text = "Nombres" ''Le Agrego un nombre a la columna 0
ColumnView1.Columns[0].Width = 200 '' Ancho de la Columna
ColumnView1.Columns[0].Alignment = 3 ''Aliniamiento al Centro
ColumnView1.Columns[1].Text = "Edad"
ColumnView1.Columns[1].Width = 50
ColumnView1.Columns[1].Alignment = 3
res = coneccion("select * from nombreyedades order by edad") ''Llamo a la funcion coneccion y envio la sentencia
FOR i = 0 TO res.Count - 1 STEP +1 ''Sistema de repeticion para agregar los datos a la columna
ColumnView1.Add(i, res!nombre)
ColumnView1[i][1] = res!edad
res.MoveNext
NEXT
cn.Close ''Cierro la coneccion
END
PUBLIC SUB Form_Open()
DIM i AS Integer
colvie() ''Cargo los datos a la ColumnView1
FOR i = 10 TO 90 STEP +1 ''Ciclo para la edad del 10 al 90
edad.Add(i)
NEXT
END
PUBLIC SUB Agregar_Click() ''Boton de Agregar el Nombre y la Edad
DIM query AS String
DIM valor AS Boolean
query = "insert into nombreyedades value('" & nombre.text & "','" & edad.text & "')"
coneccion(query)
Message.Info("El Nombre y La Edad Fueron Agregados Correctamente ", "Aceptar")
nombre.Text = ""
edad.text = ""
colvie()
END
Aqui les dejo el Proyecto con la Base de datos ya Conectada
Bajar Codigo
Espero que les Ayude y Mucha Suerte....!!
Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
COMPAÑERO BUENAS NOCHES...
Primero que todo muchas gracias por el código de el software que creaste.
de verdad para mi que soy principiante me ha servido mucho.
mi pregunta es la siguiente y no se si pecare o diré una estupidez por ignorancia pero sera posible que me regales también el código de la base de datos que usas para correr el software.
yo puedo recrearla (eso es lo que creo) pero no tengo la certeza de que lo hice bien
gracias
Primero que todo muchas gracias por el código de el software que creaste.
de verdad para mi que soy principiante me ha servido mucho.
mi pregunta es la siguiente y no se si pecare o diré una estupidez por ignorancia pero sera posible que me regales también el código de la base de datos que usas para correr el software.
yo puedo recrearla (eso es lo que creo) pero no tengo la certeza de que lo hice bien
gracias
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
última edición por soplo el Lunes, 16 Noviembre 2009, 20:20; editado 1 vez
Hola
Mirando el código se puede deducir. Mira esta sentencia:
Así que hay una tabla nombreyedades que tiene dos campos: nombre y edad.
Así que tu creas tu base de datos
y todo esto lo tienes explicado con detalle aquí
La clase connection
Mirando el código se puede deducir. Mira esta sentencia:
query = "insert into nombreyedades value('" & nombre.text & "','" & edad.text & "')"
Así que hay una tabla nombreyedades que tiene dos campos: nombre y edad.
Así que tu creas tu base de datos
Dim Cn as new connection, Tabla as table
Cn.login="root"
Cn.password="clave"
cn.host="localhost"
cn.type="mysql" 'este ejemplo es una conexión a mysql. Usa la conexión a donde quieras.
cn.open 'abrir con el usuario root
if cn.opened then
cn.databases.add("mibase")
cn.close 'cerrar conexión de root
cn.name="mibase"
cn.open 'abrir conexion a mibase
endif
if cn.opened then
tabla=cn.table.add("nombreyedades" 'crear tabla nombreyedades
tabla.tablefields.add("nombre",db.string,20) 'crear campo nombre de tipo string y tamaño 20
tabla.fields.add("edad",db.integer) 'crear campo edad de tipo entero
tabla.update 'grabar tabla
endif
Cn.login="root"
Cn.password="clave"
cn.host="localhost"
cn.type="mysql" 'este ejemplo es una conexión a mysql. Usa la conexión a donde quieras.
cn.open 'abrir con el usuario root
if cn.opened then
cn.databases.add("mibase")
cn.close 'cerrar conexión de root
cn.name="mibase"
cn.open 'abrir conexion a mibase
endif
if cn.opened then
tabla=cn.table.add("nombreyedades" 'crear tabla nombreyedades
tabla.tablefields.add("nombre",db.string,20) 'crear campo nombre de tipo string y tamaño 20
tabla.fields.add("edad",db.integer) 'crear campo edad de tipo entero
tabla.update 'grabar tabla
endif
y todo esto lo tienes explicado con detalle aquí
La clase connection
última edición por soplo el Lunes, 16 Noviembre 2009, 20:20; editado 1 vez
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Hola, primero de todo, decirte que gracias. Soy principiante y creo que esto me valdrá para poder aprender algo mas.
La verdad es que me gustaría hacer alguna aplicación con la que insertar/leer datos en una base de datos mysql online.
Cuando llegue a casa me pondré manos a la obra con este código haber si lo consigo hacer funcionar... pero mi pregunta es,
si cambio los datos por los del servidor online podre conectar con la base de datos online? También informo de que mi base de datos es accesible desde fuera, es decir no necesita estar en la web, porque tengo una aplicación en flash en local, a la cual me permite conectar con ella...
Gracias
La verdad es que me gustaría hacer alguna aplicación con la que insertar/leer datos en una base de datos mysql online.
Cuando llegue a casa me pondré manos a la obra con este código haber si lo consigo hacer funcionar... pero mi pregunta es,
si cambio los datos por los del servidor online podre conectar con la base de datos online? También informo de que mi base de datos es accesible desde fuera, es decir no necesita estar en la web, porque tengo una aplicación en flash en local, a la cual me permite conectar con ella...
Gracias
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Hola de nuevo. No hace falta que contesteis al mensaje anterior. Ya he conseguido que me coja los datos de otra base de datos que tenia yo en internet...
Pero tengo una pregunta, en:
no hay forma de hacer autimatico lo de agregar columnas? es decir, yo ahora que no se pues he puesto a mano las 9 columnas que tiene la tabla, es decir
ColumnView1.Columns[0].Text = "---" ''Le Agrego un nombre a la columna 0
ColumnView1.Columns[0].Width = 200 '' Ancho de la Columna
ColumnView1.Columns[0].Alignment = 3 ''Aliniamiento al Centro
hasta el
ColumnView1.Columns[8].Text = "---" ''Le Agrego un nombre a la columna 0
ColumnView1.Columns[8].Width = 200 '' Ancho de la Columna
ColumnView1.Columns[8].Alignment = 3 ''Aliniamiento al Centro
y lo de:
ColumnView1.Add(i, res!nombre)
ColumnView1[i][1] = res!edad
hasta el
ColumnView1[i][8] = res!ultimacolumna...
Pero para mejorar esto, se podria hacer que cogiera el nombre de las columnas o por lo menos el numero de columnas o algo por el estilo? o es mucho pedir?
Gracias un saludo a todos!
P.D: este mensaje lo quise dejar sobre las 17 horas y no me dejo porque me decía que me esperara 24h, el administrador de la web puede quitarle esta restrincion? No lo digo para ofender ni mucho menos, porque si te digo la verdad, me enterado de la existencia de esta web hoy mismo, y he aprendido mas en 1 día aquí que 2 meses de buscar en Google y paginas. Solo lo digo porque foros como Cristalab funcionan bien sin la limitación de 24H.
Gracias!
Pero tengo una pregunta, en:
Citar:
no hay forma de hacer autimatico lo de agregar columnas? es decir, yo ahora que no se pues he puesto a mano las 9 columnas que tiene la tabla, es decir
ColumnView1.Columns[0].Text = "---" ''Le Agrego un nombre a la columna 0
ColumnView1.Columns[0].Width = 200 '' Ancho de la Columna
ColumnView1.Columns[0].Alignment = 3 ''Aliniamiento al Centro
hasta el
ColumnView1.Columns[8].Text = "---" ''Le Agrego un nombre a la columna 0
ColumnView1.Columns[8].Width = 200 '' Ancho de la Columna
ColumnView1.Columns[8].Alignment = 3 ''Aliniamiento al Centro
y lo de:
ColumnView1.Add(i, res!nombre)
ColumnView1[i][1] = res!edad
hasta el
ColumnView1[i][8] = res!ultimacolumna...
Pero para mejorar esto, se podria hacer que cogiera el nombre de las columnas o por lo menos el numero de columnas o algo por el estilo? o es mucho pedir?
Gracias un saludo a todos!
P.D: este mensaje lo quise dejar sobre las 17 horas y no me dejo porque me decía que me esperara 24h, el administrador de la web puede quitarle esta restrincion? No lo digo para ofender ni mucho menos, porque si te digo la verdad, me enterado de la existencia de esta web hoy mismo, y he aprendido mas en 1 día aquí que 2 meses de buscar en Google y paginas. Solo lo digo porque foros como Cristalab funcionan bien sin la limitación de 24H.
Gracias!
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Eso está explicado aquí: http://foro.gambas-es.org/viewtopic.php?f=7&t=326
Respecto a la pregunta sobre los encabezados y columnas, no es posible hacerlo automáticamente, debes declarar al menos el nº de columnas y el texto para cada encabezado.
Pero el nº de columnas lo puedes obtener a partir del objeto Result que estés instanciando de esta manera:
Para asignar el texto de los encabezados puedes hacerlo en un SUB aparte y llamarlo desde tu rutina o al cargar el Form, pero siempre después de haber declarado el nº de columnas con la última sentencia del código de arriba.
Saludos
Cubel escribió:
Eso está explicado aquí: http://foro.gambas-es.org/viewtopic.php?f=7&t=326
Respecto a la pregunta sobre los encabezados y columnas, no es posible hacerlo automáticamente, debes declarar al menos el nº de columnas y el texto para cada encabezado.
Pero el nº de columnas lo puedes obtener a partir del objeto Result que estés instanciando de esta manera:
Para asignar el texto de los encabezados puedes hacerlo en un SUB aparte y llamarlo desde tu rutina o al cargar el Form, pero siempre después de haber declarado el nº de columnas con la última sentencia del código de arriba.
Saludos
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
ok ok,
Bueno pues te doy las gracias por las dos cosas. Lo de las 24 horas no lo sabia. Sabiendo que lo puedo modificar no tengo problema, la próxima vez lo modifico y ya esta.
Y lo otro, pues me a quedado claro pero supongo que a la hora de hacerlo me saldrán dudas y me tocara ir en vuestra ayuda otra vez.
Bueno pues te doy las gracias por las dos cosas. Lo de las 24 horas no lo sabia. Sabiendo que lo puedo modificar no tengo problema, la próxima vez lo modifico y ya esta.
Y lo otro, pues me a quedado claro pero supongo que a la hora de hacerlo me saldrán dudas y me tocara ir en vuestra ayuda otra vez.
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Hola tengo una duda con lo que me digiste un dia.
Al final he decidido guardar las columnas que van a aparecer en un archivo de settings... Es decir, si pone que la columna tal esta en si que la muestre si no no. Con varios if consigo tener el numero exacto de columnas que necesito, entonces las creo. pero acto seguido me gustaria hacer un array de esto:
es decir en el mismo IF que digo si es que si o que no, en el caso de que fuera que si, pues meter en un array lo que va detrás del res! lo que pasa que no se si se puede hacer o no. Tampoco tengo muy claro que puedo guardar y como en un array.
jguardon escribió:
Al final he decidido guardar las columnas que van a aparecer en un archivo de settings... Es decir, si pone que la columna tal esta en si que la muestre si no no. Con varios if consigo tener el numero exacto de columnas que necesito, entonces las creo. pero acto seguido me gustaria hacer un array de esto:
FOR i = 0 TO res.Count - 1 STEP +1 ''Sistema de repeticion para agregar los datos a la columna
matriculas_table.Add(i, res!matricula)
matriculas_table[i][1] = res!cliente
matriculas_table[i][2] = res!marca
matriculas_table[i][3] = res!caracteristicas
matriculas_table[i][4] = res!medidaNeumaticos
res.MoveNext
NEXT
matriculas_table.Add(i, res!matricula)
matriculas_table[i][1] = res!cliente
matriculas_table[i][2] = res!marca
matriculas_table[i][3] = res!caracteristicas
matriculas_table[i][4] = res!medidaNeumaticos
res.MoveNext
NEXT
es decir en el mismo IF que digo si es que si o que no, en el caso de que fuera que si, pues meter en un array lo que va detrás del res! lo que pasa que no se si se puede hacer o no. Tampoco tengo muy claro que puedo guardar y como en un array.
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Hola
Cubel, aquí te dejo un código que te puede interesar. No lo he probado, pero creo que funcionará agregando tu conexión a la BD y adaptándolo a tus necesidades.
Saludos
Cubel, aquí te dejo un código que te puede interesar. No lo he probado, pero creo que funcionará agregando tu conexión a la BD y adaptándolo a tus necesidades.
' gambas class file
PRIVATE $hres AS Result
PRIVATE $campos AS NEW String[]
PUBLIC SUB Form_Open()
'aquí va el código o rutina para abrir tu conexión
prepararEncabezadosTabla()
$hres = conexion.Exec("SELECT * FROM tuTabla")
matriculas_table.Rows.Count = $hres.Count
END
PRIVATE SUB prepararEncabezadosTabla()
DIM rf AS ResultField
DIM res AS Result
DIM col AS Integer = 0
res = conexion.Exec("SELECT * FROM tuTabla")
'asignamos el nº de columnas a partir del nº de campos de la bd
matriculas_table.Columns.Count = res.Fields.Count
'asignamos los encabezados a partir de los nombres de campo de la tabla
' o un array si lo prefieres
' DIM campos AS NEW String[] = ["campo1", "campo2", "etc"]
FOR EACH rf IN res.Fields
$campos.Add(rf.Name) 'array donde guardamos los nombres de campos
matriculas_table.Columns[col].Text = rf.Name
INC col
NEXT
END
'usamos el evento _Data del TableView para rellenarla automáticamente
PUBLIC SUB matriculas_table_Data(Row AS Integer, Column AS Integer)
$hres.MoveTo(Row)
matriculas_table.Data.Text = $hres[$campos[Column]]
' coloreamos alternativamente las filas
IF row MOD 2 = 0 THEN matriculas_table.Data.Background = Color.LightBackground
END
'No olvides cerrar la conexión cuando ya no la necesites, p.ej. en el form_close()
PRIVATE $hres AS Result
PRIVATE $campos AS NEW String[]
PUBLIC SUB Form_Open()
'aquí va el código o rutina para abrir tu conexión
prepararEncabezadosTabla()
$hres = conexion.Exec("SELECT * FROM tuTabla")
matriculas_table.Rows.Count = $hres.Count
END
PRIVATE SUB prepararEncabezadosTabla()
DIM rf AS ResultField
DIM res AS Result
DIM col AS Integer = 0
res = conexion.Exec("SELECT * FROM tuTabla")
'asignamos el nº de columnas a partir del nº de campos de la bd
matriculas_table.Columns.Count = res.Fields.Count
'asignamos los encabezados a partir de los nombres de campo de la tabla
' o un array si lo prefieres
' DIM campos AS NEW String[] = ["campo1", "campo2", "etc"]
FOR EACH rf IN res.Fields
$campos.Add(rf.Name) 'array donde guardamos los nombres de campos
matriculas_table.Columns[col].Text = rf.Name
INC col
NEXT
END
'usamos el evento _Data del TableView para rellenarla automáticamente
PUBLIC SUB matriculas_table_Data(Row AS Integer, Column AS Integer)
$hres.MoveTo(Row)
matriculas_table.Data.Text = $hres[$campos[Column]]
' coloreamos alternativamente las filas
IF row MOD 2 = 0 THEN matriculas_table.Data.Background = Color.LightBackground
END
'No olvides cerrar la conexión cuando ya no la necesites, p.ej. en el form_close()
Saludos
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
ok voy a probarlo... ahora si me salen algunos problemas ya informo...
Página 1 de 1
No puede crear mensajesNo 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.3644s (PHP: -74% SQL: 174%)
Consultas SQL: 45 - Debug off - GZIP Activado