Ir para conteúdo
Fórum Script Brasil
  • 0

[Resolvido] DBGRID para DB


FFernando

Pergunta

Bom Dia galera, estou com um probleminha p resolver aki no trampo e não faço nem ideia de como resolver isso..

Tenho um DBGRID que me retorna um select de um arquivo .SQL que o usuario insere no edit1.txt

após a consulta, eu devo importar os dados para um arquivo .DB

esse arquivo deve seguir a formatação dos campos da tabela, exemplo

Nome varchar2(50)
Idade int
Sexo char(1)

O problema é o seguinte, o arquivo de select é aleatório, então não posso fixar os campos no meu codigo, tenho que fazer de um jeito que ele retorne o tamanho dos campos e formate o arquivo de acordo.

Um cara aki disse p usar XSL, estou pesquisando sobre isso p me ajudr o mais rapido possivel.

Editado por FFernando
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
  • 0

Ola Jhonas,

Obrigado pelos links, mas eu estou cm duvida no seguinte.

O Select é aleatório, não é fixo.

Gostaria de saber como faço para ele gerar o arquivo .db com o MESMO tamanho das colunas do select.

exemplo:

O sistema lê o arquivo Cliente.sql

select * from cliente

nome = Fernando Batista da Costa
idade = 19
endereco = Rua do Limoeiro

desc cliente

nome varchar2(50)
idade number
endereco varchar2(50)

O arquivo db deverá ser gerado assim:
(vou utilizar _ como espaço)

Fernando Batista da Costa______________|19|Rua do Limoeiro____________________|
Joao Carlos de Almeirda Junior_________|20|Rua da Margarida___________________|

então, minha dificuldade é em saber como pegar o tamanho das colunas do oracle e fazer ele exportar p o arquivo DB na formatação correta.

Editado por FFernando
Link para o comentário
Compartilhar em outros sites

  • 0

Olá Fernando! Na verdade você está precisando de uma função que exporte seus dados com a largura de colunas fixas. Eu uso esta função em minhas aplicações:

Declare StrUtils e StdCtrls no "uses" do Form.

function ExpTxt(Source: string; Ch: char; Size: byte; LeftAlign: Boolean): string;
begin
  if LeftAlign then
    Result := Copy(Source + StringOfChar(Ch, Size), 1 , Size) //alinha a esquerda
  else
    Result := RightStr(StringOfChar(Ch, Size) + Source, Size); //alinha a direita
end;
E para usá-la:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ExpTxt(Tabela.FieldByName('CAMPO').AsString, ' ', X, True)
end;

Onde "X" é o tamanho da coluna. No seu caso, se o tamanho dos campos também variar, você terá que arrumar um jeito de o valor de X também variar.

Qualquer dúvida poste aí. Abraço!

Editado por Duduh_Capixaba
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...