 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Lun 22 Ene, 2007 1:37 pm Asunto: La duda me corroe... |
|
|
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 |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Lun 22 Ene, 2007 6:23 pm Asunto: |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 23 Ene, 2007 9:44 am Asunto: |
|
|
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 |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Mar 23 Ene, 2007 4:38 pm Asunto: |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 26 Ene, 2007 8:57 am Asunto: |
|
|
¡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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|