![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
#1
|
|||
|
|||
tquery a archivo
Hola estimados, necesito pasar los datos de un tquery a un archivo de texto o csv para después agregar estos datos a una tabla igual que se encuentra en otra base de datos, ya hice las conexiones. mi base de datos es sybase 9, y trabajo en c++ xe3, intente migrarlo con sql incrustado en c++ usando la opción output de sybase pero me da un error que esta mala la sentencia. lo pruebo en el isql y me importa el archivo sin problemas. gracias de antemano.
|
#2
|
||||
|
||||
Hola ralmic.
Código:
void QueryToTxt(TQuery *qy, const String aFileName) { String tmp; TStrings *sl = new TStringList; __try { qy->Close(); qy->Open(); while (!qy->Eof) { tmp = ""; for(int i=0; i<qy->Fields->Count; i++) tmp += qy->Fields->Fields[i]->AsString + ","; tmp.SetLength(tmp.Length()-1); sl->Add(tmp); qy->Next(); } qy->Close(); sl->SaveToFile(aFileName); } __finally { delete sl; } } Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { Query1->SQL->Text = "SELECT * FROM COUNTRY"; QueryToTxt(Query1, "C:\\Carpeta\\Query.txt"); } ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Gracias había hecho un código parecido, no andaba tan perdido, ahora para agregar esos datos a la tabla, como hacer para que a las cadenas, fechas y demas les ponga comillas y asi poder agregarlos o este código es suficientemente inteligente y hace eso??
|
#4
|
||||
|
||||
Hola ralmic.
La función que hice no agrega comillas, pero con un simple cambio podes indicarle el formato que deseas: Código:
void QueryToTxt(TQuery *qy, const String aFileName, const String Quote) { String tmp; TStrings *sl = new TStringList; __try { qy->Close(); qy->Open(); while (!qy->Eof) { tmp = ""; for(int i=0; i<qy->Fields->Count; i++) tmp += Format("%s%s%s,", ARRAYOFCONST(((String)Quote, (String)qy->Fields->Fields[i]->AsString, (String)Quote))); tmp.SetLength(tmp.Length()-1); sl->Add(tmp); qy->Next(); } qy->Close(); sl->SaveToFile(aFileName); } __finally { delete sl; } } Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { ... // Sin comillas QueryToTxt(Query1, "C:\\Pruebas\\NoQuote.txt",""); // Con comillas simples QueryToTxt(Query1, "C:\\Pruebas\\SingleQuote.txt",'\''); // Con comillas dobles QueryToTxt(Query1, "C:\\Pruebas\\DoubleQuote.txt",'"'); } ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
gracias es excelente tu código, realmente quise modificarlo para mis necesidades soy un poco novato en builder y parece que no hay mucha ayuda. con este método le pone comilla a todo no importa que sea carácter o no lo que me faltaría es como pornerle comillas a los valores que no sean numéricos. para poder a agregarlos a un a tabla. será posible?? . saludos.
|
#6
|
||||
|
||||
Hola ralmic.
Cita:
Si claro, Código:
void QueryToTxt(TQuery *qy, const String aFileName, const String Quote) { String tmp; TStrings *sl = new TStringList; __try { qy->Close(); qy->Open(); while (!qy->Eof) { tmp = ""; for(int i=0; i<qy->Fields->Count; i++) tmp += qy->Fields->Fields[i]->InheritsFrom(__classid(TNumericField)) ? qy->Fields->Fields[i]->AsString + "," : Quote+qy->Fields->Fields[i]->AsString+Quote + ","; tmp.SetLength(tmp.Length()-1); sl->Add(tmp); qy->Next(); } qy->Close(); sl->SaveToFile(aFileName); } __finally { delete sl; } } Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { QueryToTxt(Query1, "C:\\Pruebas\\DoubleQuote.txt",'"'); } ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
capacidad del tquery? | nextor | Conexión con bases de datos | 4 | 28-05-2010 01:10:13 |
consulta con TQuery | bastian | Conexión con bases de datos | 6 | 26-02-2009 17:59:51 |
Problemas con Tquery | guiasur | Conexión con bases de datos | 2 | 28-11-2007 14:33:24 |
TQuery | nenufer | Conexión con bases de datos | 2 | 22-05-2006 16:41:03 |
Leer un TQuery y armar un archivo de texto | Oscar25 | Conexión con bases de datos | 1 | 01-09-2004 16:21:51 |
![]() |
|