• Martes 16 de Abril de 2024, 10:23

Autor Tema:  Probelmas Con El Objeto Sql  (Leído 3402 veces)

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Probelmas Con El Objeto Sql
« en: Martes 9 de Noviembre de 2004, 17:57 »
0
k tal, ahora les pido ayuda por lo siguiente:
 tengo un objeto SQL en una forma donde tengo tambien un DBGrid, un Edit y un botón ke se supone k al precionarlo me debe dejar en el DBGrid solo los datos k contengan en el campo 'Folio' de mi tabla lo ke contenga el Edit, mi codigo está de la siguiente manera en el botón:

Código: Text
  1.  
  2. procedure TForm4.Button4Click(Sender: TObject);
  3. begin
  4.   try
  5.    Query1.close;
  6.    Query1.parambyname('param').asString:=Edit1.text;
  7.    Query1.open;
  8.   except
  9.    Showmessage('Ni maiz');
  10.   end;
  11.  
  12. end;
  13.  
  14.  

y el siguiente en la propiedad SQL->Tstrings

Código: Text
  1.  
  2. select * from encuesta
  3.    where Folio =  :param
  4.  
  5.  


la tabla no la tengo en un DataModule, sino en la forma1, y el error ke me da es el siguiente:

"EDBEngineError Type mismatch expression"

gracias!!  :comp:
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)

Ayla

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
    • http://www.clubdevelopers.com/foros/index.php
Re: Probelmas Con El Objeto Sql
« Respuesta #1 en: Martes 9 de Noviembre de 2004, 19:00 »
0
Hola mustang! :hola:

 Esa excepción salta porque no puede conectar a la Base de Datos, asegurate que tienes bien enlazado el query, en su propiedad DatabaseName introduce el Alias de la base de datos. Revisa que las rutas esten bien especificadas ;)  .

 Chao!
Y que mi luz te acompañe
pues la vida es un jardín
donde lo bueno y lo malo
se confunde y es humano
no siempre saber elegir.

Ayla Blog

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Re: Probelmas Con El Objeto Sql
« Respuesta #2 en: Miércoles 10 de Noviembre de 2004, 16:55 »
0
Cita de: "Ayla"
Hola mustang! :hola:

 Esa excepción salta porque no puede conectar a la Base de Datos, asegurate que tienes bien enlazado el query, en su propiedad DatabaseName introduce el Alias de la base de datos. Revisa que las rutas esten bien especificadas ;)  .

 Chao!
Hola!

oye pues fijate que ya revise lo ke me comentabas y todo está en su lugar, el databasename esta bien ligado con mi base de datos, y tengo los demas elementos bien tambien, como el data source y el dbgrid, no tendras por ahi ahi otra opcion?? :D

de ante mano gracias!!
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)

Ayla

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
    • http://www.clubdevelopers.com/foros/index.php
Re: Probelmas Con El Objeto Sql
« Respuesta #3 en: Miércoles 10 de Noviembre de 2004, 17:52 »
0
Hola!

 Tienes instalado BDE (Borland Desktop Engine) en la máquina donde ejecutas la aplicación?

 :hola:
Y que mi luz te acompañe
pues la vida es un jardín
donde lo bueno y lo malo
se confunde y es humano
no siempre saber elegir.

Ayla Blog

makio

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Probelmas Con El Objeto Sql
« Respuesta #4 en: Miércoles 10 de Noviembre de 2004, 23:43 »
0
Type mismatch expression, Mira este error sale cuando el query no tiene un valor para hacer la consulta por ejemplo:

Select * from encuesnta where folio='hgf
o
Select * from encuesnta where folio=

En si lo que significa la excepción es que un valor se perdio en la expresición, puede ser que el parametro no lo mandes bien, puedes hacer esto si usar parametros:

Query1.Close;
Query1.SQL.Text:='select * from encuesta where Folio ='+Edit1.Text;
Query1.Active:=true;


yo creo que con esto funcionara perfectamente pruebalo y si no sirve me avisas.

 :comp:

Ayla

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
    • http://www.clubdevelopers.com/foros/index.php
Re: Probelmas Con El Objeto Sql
« Respuesta #5 en: Jueves 11 de Noviembre de 2004, 16:52 »
0
Código: Text
  1. Query1.Close;
  2. Query1.SQL.Text:='select * from encuesta where Folio ='+Edit1.Text;
  3. Query1.Active:=true;
  4.  

Sólo comentar que está instrucción no funcionaría.  Porque el parametro que mandamos al query es una string, deberiamos usar la instrucción QuotedStr o ponerle las comillas pertinentes. Lo correcto sería:

Código: Text
  1. Query1.Close;
  2. Query1.SQL.Text:='select * from encuesta where Folio ='+QuotedStr(Edit1.Text);
  3. Query1.Active:=true;
  4.  

Pero tanto esta manera, como esta otra, funcionan correctamente:

Código: Text
  1. Query1.Close;
  2. Query1.SQL.Text:='select * from encuesta where Folio = :Folio ';
  3. Query1.ParamByName('Folio').AsString := Edit1.Text;
  4. Query1.Active:=true;
  5.  

Un saludo.
Y que mi luz te acompañe
pues la vida es un jardín
donde lo bueno y lo malo
se confunde y es humano
no siempre saber elegir.

Ayla Blog

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Re: Probelmas Con El Objeto Sql
« Respuesta #6 en: Jueves 11 de Noviembre de 2004, 18:50 »
0
Cita de: "makio"
Type mismatch expression, Mira este error sale cuando el query no tiene un valor para hacer la consulta por ejemplo:

Select * from encuesnta where folio='hgf
o
Select * from encuesnta where folio=

En si lo que significa la excepción es que un valor se perdio en la expresición, puede ser que el parametro no lo mandes bien, puedes hacer esto si usar parametros:

Query1.Close;
Query1.SQL.Text:='select * from encuesta where Folio ='+Edit1.Text;
Query1.Active:=true;


yo creo que con esto funcionara perfectamente pruebalo y si no sirve me avisas.

 :comp:
oigan muchisias gracias a los dos makio y ayla, sus dos maneras funcionan bien!!! les agradezco el tiempo ke les tomo escribir,
hasta pronto!!
y gracias de nuevo
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Re: Probelmas Con El Objeto Sql
« Respuesta #7 en: Viernes 12 de Noviembre de 2004, 15:46 »
0
hijoles una ultima molestia!

mi codigo ha kedado de la siguiente manera:

Código: Text
  1.  
  2. try
  3.    Query1.close;
  4.    Query1.SQL.Text:='select encuesta.Folio, evaluado.Area from encuesta, evaluado where evaluado.Area ='+QuotedStr(Edit1.Text)+'AND encuesta.Folio=evaluado.Folio order by Folio';
  5.    Query1.open;
  6.    co:=IntToStr(Query1.RecordCount);
  7.    Showmessage('Se encontraron' + ' ' +  co + ' ' + 'registros');
  8.    DBGrid1.Columns.SaveToFile('c:\tablapaso');//**********AKI!!!!*****///
  9.   except
  10.    Showmessage('Ni maiz');
  11.   end;
  12.  
  13.  

ahora lo k hago es guardar el resultado del query k me kedo en el dbgrid1 al archivo "tablapaso" pero no logro encontrar el formato en el ke me lo deja, crei ke podria ser una tabla y lo intente abrir con el database desktop y con excel y nada, saben en k formato me deja el archivo????
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)

makio

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Probelmas Con El Objeto Sql
« Respuesta #8 en: Sábado 13 de Noviembre de 2004, 00:13 »
0
Como lo quieres guardar no se puede, abrelo en el bloc de notas para que veas que te dejo, una forma para guardarlo en otra tabla seria creando la tabla y moviendo el resultado del query con un BacthMove, ve el codigo es sencillo:

procedure TForm1.Button1Click(Sender: TObject);
var
 Table:TTable; //Tabla
begin
  query1.FieldDefs.Update; //los campos que tiene el query se refrescan
  Table := TTable.Create(nil); //se crea la tabla
  Table.TableName := 'C:\TablaPaso';
  {La ruta donde la deseas guardar esto lo puedes hacer con un savedialog          con  ruta ya espeficada}
  Table.TableType := ttParadox   ; //tipode tabla en la ayuda puedes ver los tipos
  Table.FieldDefs.Assign(query1.FieldDefs);
  {se le asignan los campos del query a la tabla}
  Table.CreateTable ;
  //se crea la tabla con contenido
  //esto es para mover los registros del query a la nueva tabla
  batchmove1.Destination:=Table;
  batchmove1.Source:=Query1;
  batchmove1.Execute;
end;

esa es una forma otra seria exportandolo a Excel para eso necesitas un componente que se llama scExcelExport1 el codigo para ese componente seria asi:

procedure TForm1.Button1Click(Sender: TObject);
begin
 if savedialog1.Execute then
 begin
  scExcelExport1.ExportDataset;
  scExcelExport1.SaveAs(savedialog1.FileName,ffXLS);
  scExcelExport1.Disconnect;
 end;
end;

solamente tienes que poner en la propiedad Dataset el query que quieras exportar.

Espero que te sirva de ayuda...
el componente lo encuentras en la inter buscalo...

mustang

  • Miembro MUY activo
  • ***
  • Mensajes: 133
    • Ver Perfil
Re: Probelmas Con El Objeto Sql
« Respuesta #9 en: Martes 16 de Noviembre de 2004, 22:04 »
0
oye la primera forma k me dijiste jala a la prefexion, muchisimas muchisimas muchisimas gracias por la ayuda, espero no molestar tanto, hasta pronto, nos veremos, ke tengan suertecita

gracias :comp:     :D
El camino del exceso lleva al palacio de la sabiduria.....(William Blake)