Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Sobre conexión a interbase (https://www.clubdelphi.com/foros/showthread.php?t=37813)

JuanIB 23-11-2006 15:13:07

Sobre conexión a interbase
 
Hola a todos, estoy intentando conectar mi aplicación a una bd de interbase. Lo que intento es cargar datos en la BD, empleo un IBDataBase, un IBTransaction, un IBQuery y un IBUpdateSQL. Alguien me puede aclarar un poco cómo conseguirlo.

Gracias.

Bicho 23-11-2006 15:27:18

Hola, y exáctamente que problemas te estás encontrando? Sabes por donde empezar o no? Lo has intentado almenos?

Danos unos datos más. Que versión de IB vas a usar. Que has probado hasta ahora y problemas te vas encontrando.
Tu pregunta es muy genérica y no especificas el problema. Intenta ser más concreto y sobretodo, ir por partes.

Saludos

JuanIB 28-11-2006 00:28:49

De una parte no se como insertar, actualizar o eliminar. Por ejemplo, IBDataSet incluye cuatro apartados (creo) consulta, insercion, actualización y borrado. Apartados en los que se puede escribir código SQL. Si escribo una orden de busqueda (select * from....) y activo el elemento la busqueda se ha realizado de forma correcta. Ahora bien, si escribo (insert into _tabla_ values...) y activo el elemento me provoca una excepción.

¿Sabeis cual es el mecanismo para insertar, actualizar y eliminar empleando los apartados SQL de elementos como IBQuery, IBUpdateSQL, IBDataSet o IBSQL?

Gracias.

JuanIB 28-11-2006 00:37:43

Otro problema que se me plantea es el del uso de los parámetros. Por ejemplo,
Código SQL [-]
select * from _tabla_ where _columna_=:Parametro
; Dentro de un apartado SQL de algún elemento. Si la comparación con la columna es numérica no da problemas, pero si la hago respecto a una cadena de caracteres esta no responde. Lo que yo hago es:

Código:

aux = "'" + edit1->text + "'";
Query1->ParamByName("Parametro")->AsString = aux.c_str();

Pero no obtengo la consulta deseada.

¿Cómo se pueden emplear parámetros que esperan cadenas de caracteres?

Gracias.

Bicho 28-11-2006 01:47:31

Bueno, vayamos por partes:

-Para los tipos de sentencias SQL que implican consulta de datos (select), simplemente basta con activar el objeto o abrirlo:

Código Delphi [-]
  IBDataSet1->SQL->Text := "select _____ from ....";

 IBDataSet1->Open;
 o
 IBDataSet1->Active := True;

Las dos son válidas.

- Para los tipos de sentencias SQL que implican un alteración (insert, update, detele, drop, create, etc) hay que llamar al método ExecSQL en lugar de cualquiera de los dos anteriores.

Código Delphi [-]
  IBDataSet1->SQL->Text := "insert into ....";
  IBDataSet1->ExecSQL;

Tu problema con los parámetros no lo acabo de entender. Quizá sea porque desconozco C++ Builder y se me escapa algo, pero en principio yo lo veo bien.
Puedes usar la propiedad Text del SQL justo antes de ejecutar la sentencia SQL, para saber que es lo que hay, y que se va a mandar al servidor. Si esto tu lo coges y lo pasas al SQL Explorer o el cliente de base de datos que tengas, podrás ejecutarlo y ver que es lo que falla.

Ya nos comentas que tal.

Saludos


La franja horaria es GMT +2. Ahora son las 07:53:39.

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