FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Duda sobre el IBQuery e IBTABle cual usar??
Miren de pronto me surgio una duda ... me recomendaron utilizar IBQuerys en vez de IBTables... si utilizo los IBQuerys para almacenar informacion en vez de las IBtables es necesario utilizar un DATASOURCE??????
La verdad yo pienso que no... por que cuando se almacena informacion por sql INSERT INTO en ese momento estoy dando el nombre de la tabla en donde se almacenaran los datos.. cierto o falso???? es decir estoy guardando datos en la tabla de manera manual.... Si utilizo los querys para almacenar estos se ejecutan por medio de la sentencia EXECSQL verdad??? y me dijeron que luego se cierran estos y despues se abren de nuevo... es cierto???? |
#2
|
||||
|
||||
Saludos
Cita:
Cita:
Clausuras como Insert, Update, Delete se utiliza ExecSql, para el Select se usa Open o Ibquery.Active=True Cita:
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#3
|
|||
|
|||
Cita:
Una TIBQuery es una clase derivada de TDataset, porque esta pensada para poder enlazar con los controles visuales mediante un datasource, y poder ver asi los datos en pantalla. Esto hace que sea un objeto mucho mas complejo y lento en ejecucion. Si tu no vas a enlazar nada a esa query, y simplemente quieres ejecutar comandos, para eso esta pensado el objeto TIBSQL, que es mucho mas sencillo lo que implica que consume menos memoria y su codigo se ejecuta mas rapido. Saludos |
#4
|
|||
|
|||
pero como se utilizan los TIBSQL??? de la misma manera que IBSQL??? ...
pero tengo otra duda o mas bien un error.... EStoy introduciendo datos a las tablas por medio de IBQuerys.. estos solo estan enlazados a la base de datos... y en su propiedad Datasource lo tengo en blanco..... pero utilizo unos parametros para introducir cierta informacion... estos parametros se los paso por medio de variables que almacenan informacion de los edits de mi formulario.. pero me marca un error que dice que un campo no esta guardando informacion y este campo es llave primaria y por lo tanto no se puede ejecutar ni guardar informacion en las tablas |
#5
|
||||
|
||||
Saludo
Pon el error exactamenete como te lo presenta y/o mustranos el codigo que utilizas IBSQL es una declaracion del tipo TIbSql
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#6
|
|||
|
|||
este es el error que me muestra:
Código:
un mensaje de error que esta en ingles y lo que me dice es que el campo 'Field 'DNI_ALUMNO' must be have a value' o sea que el campo debe tener un valor Código:
procedure TIngresar_alum.BitBtn3Click(Sender: TObject); var dni_a:string; apellidopa:string; apellidoma:string; nombre:string; sex:string; dir:string; local:string; ciud:string; tele:string; fecha_ing:TDateTime; statu:string; imagen:string; edoc:string; carrera:string; sem:integer; cert:integer; fot:integer; act:integer; cur:integer; begin //Se almacena los datos de las cajas de texto en las variables //para evitar perdidas de informacion dni_a:=matricula.Text; apellidopa:=apaterno.Text; apellidoma:=amaterno.Text; nombre:=nombres.Text; sex:=sexo.Text; dir:=direccion.Text; local:=localidad.Text; ciud:=municipio.Text; tele:=telefono.Text; edoc:=edocivil.Text; carrera:=DBLcarrera.KeyValue; fecha_ing:=strtodate(fecha.Text); statu:=status.Text; imagen:=DLgpicture.FileName; sem:=strtoint(semestre.Text); cert:=strtoint(certificado.ValueChecked); act:=strtoint(acta.ValueChecked); fot:=strtoint(fotos.ValueChecked); cur:=strtoint(curp.ValueChecked); //Se insertan los valores en las tablas ModuloSID.IBQuery1.Params[0].AsString:=dni_a; ModuloSID.IBQuery1.Params[1].AsString:=apellidopa; ModuloSID.IBQuery1.Params[2].AsString:=apellidoma; ModuloSID.IBQuery1.Params[3].AsString:=Nombre; ModuloSID.IBQuery1.Params[4].AsString:=Sex; ModuloSID.IBQuery1.Params[5].AsString:=Dir; ModuloSID.IBQuery1.Params[6].AsString:=Local; ModuloSID.IBQuery1.Params[7].AsString:=ciud; ModuloSID.IBQuery1.Params[8].AsString:=Tele; ModuloSID.IBQuery1.Params[9].AsDate:=fecha_ing; ModuloSID.IBQuery1.Params[10].AsString:=statu; MOduloSID.IBQuery1.Params[11].AsString:=edoc; ModuloSID.IBQuery1.Params[12].AsBlob:=imagen; //Se ejecuta el Query 1 para almacenar datos ModuloSID.IBQuery1.ExecSQL; ModuloSID.IBQuery2.Params[0].AsString:=dni_a; ModuloSID.IBQuery2.Params[1].AsString:=carrera; //Se ejecuta el Query 2 para almacenar datos ModuloSID.IBQuery2.ExecSQL; ModuloSID.IBQuery3.Params[0].AsString:=dni_a; ModuloSID.IBQuery3.Params[1].AsInteger:=sem; //SE ejecuta el Query 3 para almacenar los datos ModuloSID.IBQuery3.ExecSQL; ModuloSID.IBQuery4.Params[0].AsString:=dni_a; ModuloSID.IBQuery4.Params[1].AsInteger:=cert; ModuloSID.IBQuery4.Params[2].AsInteger:=act; ModuloSID.IBQuery4.Params[3].AsInteger:=fot; ModuloSID.IBQuery4.Params[4].AsInteger:=cur; //Se ejecuta el Query 4 para almacenar datos ModuloSid.IBQuery4.ExecSQL; //Se abren y cierran las tablas para actualizar sus valores ModuloSID.IBTalumnos.Close; ModuloSID.IBTalumnos.Open; ModuloSID.IBTsemestre.Close; ModuloSID.IBTsemestre.Open; MOduloSID.IBTalum_doc.Close; ModuloSID.IBTalum_doc.Open; ModuloSID.IBTalumno_carrera.Open; ModuloSID.IBTalumno_carrera.Close; end; |
#7
|
||||
|
||||
Una vista rapido me dice que tu codigo esta bien. Puede ser que la sentecia sql (Insert) que utilizas tenga el error.
Chequealo! y/o muestralo para estar un poco mas claro
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
|
|