Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con variable tipo TIBSQL en Delphi 2009 (https://www.clubdelphi.com/foros/showthread.php?t=61851)

azkot 24-11-2008 20:50:27

Problema con variable tipo TIBSQL en Delphi 2009
 
Buen dia a todos, me encuentro aprendiendo Delphi por mi cuenta, y me he topado con el problema de que no me reconoce el tipo de dato TIBSQL (me lo subraya con rojo ), la utilizo para una conexion con firebirt y baciar los datos a un TListView, o almenos eso creo. ya antes me habia marcado este tipo de error con TIBDatabase, pero lo solucione agregando a la linea


Código Delphi [-] uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
DB, IBDatabase,Dialogs, System.ComponentModel, Borland.Vcl.ComCtrls;



no se si me falte agregar algo mas para que me acepte el TIBSQL
dejo el codigo por si sirve de algo

Código Delphi [-]
unit PruebaB;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
DB, IBDatabase,Dialogs, System.ComponentModel, Borland.Vcl.ComCtrls;
type
TForm1 = class(TForm)
TListView: TListView;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.nfm}
function ConectarBaseDatos( sBaseDatos: String ): TIBDatabase;
var DB: TIBDatabase;
begin DB := TIBDatabase.Create( nil );
DB.Name := 'IB';
DB.DatabaseName := '127.0.0.1:' + sBaseDatos;
DB.Params.Add( 'user_name=SYSDBA' );
DB.Params.Add( 'password=masterkey' );
DB.SQLDialect := 3;
DB.LoginPrompt := False;
try
DB.Open;
except
raise Exception.Create( 'No puedo conectar con INTERBASE/FIREBIRD.' + #13 + #13 + 'Consulte con el administrador del programa.' );
end;
Result := DB;
end;
procedure ListarTabla( DB: TIBDatabase; sTabla: String; Listado: TListView );
var Campos: TStringList;
i: Integer;
Consulta: TIBSQL;
Transaccion: TIBTransaction;
begin
if DB = nil then Exit;
// Creamos un stringlist para meter los campos de la tabla
Campos := TStringList.Create;
DB.GetFieldNames( sTabla, Campos );
// Creamos una transacción para la consulta
Transaccion := TIBTransaction.Create( nil );
Transaccion.DefaultDatabase := DB;
// Creamos una consulta
Consulta := TIBSQL.Create( nil );
Consulta.Transaction := Transaccion;
Consulta.SQL.Add( 'SELECT * FROM ' + sTabla );
Transaccion.StartTransaction;
try
Consulta.ExecQuery;
except
Transaccion.Rollback;
raise;
end;
// Creamos en el listview una columna por cada campo
Listado.Columns.Clear;
Listado.Columns.Add;
Listado.Columns[0].Width := 0;
for i := 0 to Campos.Count - 1 do
begin
Listado.Columns.Add;
Listado.Columns[i+1].Caption := Campos[i];
Listado.Columns[i+1].Width := 100;
end;
// Listamos los registros
Listado.Clear;
while not Consulta.Eof do
begin
Listado.Items.Add;
for i := 0 to Campos.Count - 1 do
Listado.Items[Listado.Items.Count-1].SubItems.Add( Consulta.FieldByName(
Campos[i] ).AsString );
Consulta.Next;
end;
// Una vez hemos terminado liberamos los objetos creados
FreeAndNil( Campos );
FreeAndNil( Consulta );
FreeAndNil( Transaccion );
end;
procedure TForm1.FormCreate(Sender: TObject);
var DB: TIBDatabase;
begin

DB := ConectarBaseDatos( 'c:\ch datos\ch.fdb' ); // PARA FIREBIRD
if DB = nil then
Exit;
end;
end.






De antemano gracias por ayudar a un autodidacta :confused:

elcolo83 26-11-2008 16:51:57

Tenes que agregar en el uses IBSQL

Saludos

azkot 26-11-2008 16:57:26

Gracias
 
En efecto ese era le problema, gracias por la respuesta , y ya que estamos en esto, sabes como podrea gregar datos a la tabla ?

elcolo83 26-11-2008 17:01:09

Mira lo que puse en este post
http://www.clubdelphi.com/foros/showthread.php?t=61032

Saludos

azkot 26-11-2008 17:03:03

De nueva cuenta Gracias
 
De nueva cuenta gracias, le hechare un ojo


La franja horaria es GMT +2. Ahora son las 21:47:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi