Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

La duda me corroe...

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: La duda me corroe... Responder citando

Vamos a ver: Ya he creado la base de datos y las tablas correspondientes (me ha costado, ¡Hasta que me he enterado de que era la Transacción!)

Ahora quiero importar las tablas viejas que tengo en Paradox. ¿Hay algún problema? ¿Se puede hacer directamente con alago así?
Código:
INSERT INTO Bancos (SELECT * FROM 'C:\Tablas\Bancos.db)

Aparte de eso, y mientras resuelvo este problema, me está ocurriendo otra cosa. Creo la base de datos, la conecto, creo las tablas y cuando voy a cargarlas (a partir de un fichero de texto plano) me dice que la tabla no existe:

Cita:
Dynamic SQL Error
SQL error code = -204
Table unknown
BANCOS
At line 1, column 13

El query al que hace referencia es este:
Código:
INSERT INTO Bancos VALUES (:Entidad, :Nombre)

Le he puesto al query las propiedades ObjectView y ParamCheck a true.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Que tal Angel,

Pues nunca he trabajdo con Paradox, por lo que no he tenido la necesidad de migrar. Y la verdad no sé si funcione tal como lo intentas hacer.

Lo que te recomiendo es que tus datos los pases a un archivo de texto plano con extensión .sql, de esta forma podras cargar el script y ejecutarlo desde la interface de EMS.

El script debe contener lineas como esta (ejemplo):

INSERT INTO Bancos VALUES ('DATO1', 'DATO2', 'DATON');
INSERT INTO Bancos VALUES ('DATO1', 'DATO2', 'DATON');
INSERT INTO Bancos VALUES ('DATO1', 'DATO2', 'DATON');
INSERT INTO Bancos VALUES ('DATO1', 'DATO2', 'DATON');

Esto puede ser algo tedioso.

Si encuentro una forma de hacerlo más eficiente ya lo estaré publicando.

Saludos!
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Efectivamente, no se pueden mezclar ambos tipos de base de datos. Lo que he hecho al final es crear un archivo de texto plano y cargarlo, como dices, con un script. Pero entonces me da el error que os comento en el mensaje anterior de "tabla desconocida".
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Si has abierto el SQL Script (Tools->SQL Script) tienes que seleccionar la base de datos sobre la que se ejecutará el script.



Saludos!
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

¡Solucionado! Y de la manera más estúpida posible: Bastó con desconectar y volver a conectar la base de datos después de crear las tablas. Y como los datos originales los tengo en tablas Paradox, sólo tuve que poner un TTable normal en el formulario y poner en la propiedad TableName la vía de acceso y nombre de la tabla que me interesa. Algo así:
Código:
IBDatabase1->Connected = false;
IBDatabase1->Params->Clear();
IBDatabase1->DatabaseName = fGesAfi->cTablas;
IBDatabase1->Params->Add("USER 'sysdba'");
IBDatabase1->Params->Add("PASSWORD 'masterkey'");
IBDatabase1->Params->Add("PAGE_SIZE 4096");
IBDatabase1->SQLDialect = 3;
IBDatabase1->CreateDatabase();
IBDatabase1->Connected = true;

Query1->Close();
Query1->UnPrepare();
Query1->SQL->Text = "CREATE TABLE Bancos (Entidad CHAR(4), Nombre CHAR(65))";
Query1->Prepare();
Query1->ExecSQL();

IBDatabase1->Connected = false;
IBDatabase1->Params->Clear();
IBDatabase1->DatabaseName = fGesAfi->cTablas;
IBDatabase1->Params->Add("USER 'sysdba'");
IBDatabase1->Params->Add("PASSWORD 'masterkey'");
IBDatabase1->Params->Add("PAGE_SIZE 4096");
IBDatabase1->SQLDialect = 3;
IBDatabase1->CreateDatabase();
IBDatabase1->Connected = true;

if (FileExists(fGesAfi->cInicio + "\\Bancos.db"))
{
     Salida->Close();
     Salida->TableName = fGesAfi->cInicio + "\\Bancos.db";
     Salida->Open();

     Query1->Close();
     Query1->UnPrepare();
     Query1->SQL->Clear();
     Query1->SQL->Text = "INSERT INTO Bancos VALUES (:Entidad, :Nombre)";

     Salida->First();
     while (!Salida->Eof)
     {
          Query1->Close();
          Query1->UnPrepare();
          Query1->ParamByName("Entidad")->AsString = Salida->FieldByName("Entidad")->AsString;
          Query1->ParamByName("Nombre")->AsString  = Salida->FieldByName("Nombre")->AsString;
          Query1->Prepare();
          Query1->ExecSQL();
          Salida->Next();
     }
}

_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.