pimpocvl007 Postado Setembro 10, 2011 Denunciar Share Postado Setembro 10, 2011 (editado) Boa noite,Utilizei o código abaixo para EXPORTAR os dados da minha tabela, funcionou perfeitamente. O problema esta no código de importação que da este erro: [E-R-R-O]Project 1Dynamic SQL ErrorSQL error code = -303conversion error from string "1"[E-X-P-O-R-T-A-R]var Delimitador: TIBOutputDelimitedFile;begin IBSQL1.SQL.Text := 'select CUST_NO, CUSTOMER, CITY from CUSTOMER'; Delimitador := TIBOutputDelimitedFile.Create; try Delimitador.Filename := 'C:\export_delim.exp'; IBSQL1.BatchOutput(Delimitador); finally Delimitador.Free; end; ShowMessage('Exportação realizada com sucesso');end;[i-M-P-O-R-T-A-R]var Delimitador: TIBInputDelimitedFile;begin IBSQL1.SQL.Text := 'insert into CUSTOMER values (:CUST_NO, :CUSTOMER, :CITY)'; Delimitador := TIBInputDelimitedFile.Create; try Delimitador.Filename := Edit1.Text; IBSQL1.BatchInput(Delimitador); finally Delimitador.Free; end; ShowMessage('Importação realizada com sucesso');end;obs.: http://www.devmedia.com.br/post-2040-Expor...do-fb---ib.htmlComo resolver? Editado Dezembro 5, 2011 por pimpocvl007 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Setembro 10, 2011 Denunciar Share Postado Setembro 10, 2011 Dynamic SQL ErrorSQL error code = -303conversion error from string "1"erro de conversão para string "1"OBS: supondo que o seu campo CUST_NO seja do tipo inteiro, voce deverá fazer a conversão da string "1" que é um caracter para um valor inteiro.abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 pimpocvl007 Postado Setembro 11, 2011 Autor Denunciar Share Postado Setembro 11, 2011 Jhonas, boa noite.Como que converte? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Setembro 12, 2011 Denunciar Share Postado Setembro 12, 2011 Já que voce esta seguindo o exemplo do link:Aqui vale uma dica muito importante: para que a importação ocorra perfeitamente, os campos de destino têm que ter o mesmo nome, tipo de dados e ordem na tabela, caso contrário ocorrerá erros ao inserir os dados. Dynamic SQL ErrorSQL error code = -303conversion error from string "1"reveja a definição de tipo de dados na sua tabela, e não precisará fazer nenhuma conversãoexemplo de uma conversão de tipovar num : string; num1 : integer num := '1'; num1 := num; // aqui ocorrerá erro de conversão num1 := strtoint(num); // aqui está correta a conversão de tipoabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 pimpocvl007 Postado Setembro 12, 2011 Autor Denunciar Share Postado Setembro 12, 2011 var num : string; num1 : integer num := '1'; num1 := num; // aqui ocorrerá erro de conversão num1 := strtoint(num); // aqui está correta a conversão de tipo...então Jhonas, para testar eu criei uma tabela simples que recebera a importação, (tabela = teste, sendo os campos: "cd_cliente = integer" e "nm_cliente = string(60)"), os dados que exportei de outra tabela seguem este mesmo raciocínio, inclusive o nome e tipo, mesmo assim deu erro. Este exemplo de conversão que você deu já e familiar para mim, mas no caso dentro de um SQL não, você quer dizer que eu terei que utilizar variáveis dentro do SQL para representar os campos? isso?obs.: naquele primeiro link que postei tem um "programinha" de exemplo para baixar, testei com ele e também da erro.ObrigadoOlimpio Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Setembro 12, 2011 Denunciar Share Postado Setembro 12, 2011 exemplo na instrução sql:INSERT INTO Customer (CustNo, CustFirstName, CustLastName, CustStreet, CustCity, CustState, CustZip, CustBal) VALUES ("9999999", 'John', 'Avitabile', '432 Western', 'Albany', 'NY', '80217-0211', 500) OBS: foi utilizado aspas duplas no valor, o que causara erro INSERT INTO Customer (CustNo, CustFirstName, CustLastName, CustStreet, CustCity, CustState, CustZip, CustBal) VALUES ('9999999', 'John', 'Avitabile', '432 Western', 'Albany', 'NY', '80217-0211') OBS: a maneira correta é usar aspas simples outra maneira seria fazer a conversão como no exemplo do post anterior, se voce estiver usando variaveis com passagem de parametros. INSERT INTO Customer (CustNo, CustFirstName, CustLastName, CustStreet, CustCity, CustState, CustZip) VALUES (:Num, :Nome, :Sobre_nome, :Rua, :Cidade, :Estado, :CEP)Então antes de processar a instrução voce faz a conversão do tipooutro exemplo se uso:http://files.edin.dk/php/win32/dev/php_bui...les/o8idemo.sqlabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 pimpocvl007 Postado Novembro 29, 2011 Autor Denunciar Share Postado Novembro 29, 2011 (editado) ...sabe, ainda não consegui resolver este problema. Fiquei impressionado quando descobri este componente IBSQL1 que exportou todos os dados sem eu precisar ficar fazendo muitas configurações, ai no exemplo também constava a importação, essa sim, deu dor de cabeça, eu imaginava que seria algo como fez com a exportação ou seja, era só entrar com um sql simples executar ali e pronto, ele (IBSQL1) importaria da mesma forma magica os dados para a tabela. Pelo que estou percebendo eu tenho que desenvolver um processo que lê linha por linha do arquivo e importa na tabela, isso?[este código não da erro mas também não importa nada]procedure TfrmPESPR001.btImportarClick(Sender: TObject);var Input: TIBInputRawFile;begin IBSQL1.SQL.Text := 'insert into TESTE values (:CD_PESSOA, :NM_PESSOA)'; Input := TIBInputRawFile.Create; try Input.Filename := ExtractFilePath(Application.ExeName)+'\backups\CadastroPerfilPessoa.exp'; IBSQL1.BatchInput(Input); finally Input.Free; end; ShowMessage('Importação realizada com sucesso');end;Att.Olimpio Editado Novembro 29, 2011 por pimpocvl007 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Novembro 29, 2011 Denunciar Share Postado Novembro 29, 2011 exemplo:unit UIBSQL; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, IBDatabase, IBCustomDataSet, IBQuery, IBSQL, IBUpdateSQL, DBClient, DBLocal, DBLocalI, ExtCtrls, DBCtrls, StdCtrls, IBTable, IBDatabaseInfo; type TFIBSQL = class(TForm) IBSQL1: TIBSQL; IBDatabase1: TIBDatabase; IBTransaction1: TIBTransaction; DataSource1: TDataSource; DBGrid1: TDBGrid; IBSQL2: TIBSQL; Button1: TButton; IBTable1: TIBTable; IBTable2: TIBTable; DataSource2: TDataSource; DBGrid2: TDBGrid; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var FIBSQL: TFIBSQL; implementation {$R *.dfm} procedure TFIBSQL.Button1Click(Sender: TObject); var Filename : String; RawOutput : TIBOutputRawFile; RawInput : TIBInputRawFile; begin IBSQL1.Sql.Text := 'Select country, currency from country'; IBSQL2.Sql.Text := 'Insert into Newcountry (country, currency) values(:first,:second)'; Filename := 'd:\DataFile.RAW'; //?COUNTRY???????? d:\DataFile.RAW ??? RawOutput:= TIBOutputRawFile.Create; try RawOutput.FileName := FileName; IBSQL1.BatchOutput(RawOutput); finally RawOutput.Free; end; //?d:\DataFile.RAW ?????????NEWCOUNTRY?? RawInput := TIBInputRawFile.Create; try RawInput.FileName := FileName; IBSQL2.BatchInput(RawInput); IBTable2.Close; IBTable2.Open; finally RawInput.Free; end; //???? IBSQL2.Transaction.CommitRetaining; end; procedure TFIBSQL.FormCreate(Sender: TObject); begin IBTable1.Open; IBTable2.Open; end; end.caso ainda tenha duvidas, veja:http://www.sqlmagazine.com.br/Colunistas/L..._exportacao.asphttp://qc.embarcadero.com/wc/qcmain.aspx?d=93446Manual Interbasehttp://www.gvsnet.nl/Interbase/v80/DevGuide.pdfOBS: procure entender o funcionamento do códigoabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 pimpocvl007 Postado Dezembro 4, 2011 Autor Denunciar Share Postado Dezembro 4, 2011 ...bingo!Deu certo com sua dica.Mais uma vez, muito obrigado.Att.Olimpio Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
pimpocvl007
Boa noite,
Utilizei o código abaixo para EXPORTAR os dados da minha tabela, funcionou perfeitamente. O problema esta no código de importação que da este erro:
[E-R-R-O]
Project 1
Dynamic SQL Error
SQL error code = -303
conversion error from string "1"
[E-X-P-O-R-T-A-R]
var
Delimitador: TIBOutputDelimitedFile;
begin
IBSQL1.SQL.Text := 'select CUST_NO, CUSTOMER, CITY from CUSTOMER';
Delimitador := TIBOutputDelimitedFile.Create;
try
Delimitador.Filename := 'C:\export_delim.exp';
IBSQL1.BatchOutput(Delimitador);
finally
Delimitador.Free;
end;
ShowMessage('Exportação realizada com sucesso');
end;
[i-M-P-O-R-T-A-R]
var
Delimitador: TIBInputDelimitedFile;
begin
IBSQL1.SQL.Text := 'insert into CUSTOMER values (:CUST_NO, :CUSTOMER, :CITY)';
Delimitador := TIBInputDelimitedFile.Create;
try
Delimitador.Filename := Edit1.Text;
IBSQL1.BatchInput(Delimitador);
finally
Delimitador.Free;
end;
ShowMessage('Importação realizada com sucesso');
end;
obs.: http://www.devmedia.com.br/post-2040-Expor...do-fb---ib.html
Como resolver?
Editado por pimpocvl007Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.