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

Banco de dados com Sockets


Soidho

Pergunta

Boa tarde Pessoal,

Estou fazendo um programa aqui que acessa uma banco de dados. Estou selecionando alguns registros e jogando em uma MemoryTable. Essa MemoryTable esta ligada num DBGrid.

Eu gostaria de enviar o conteudo dessa MemoryTable para um cliente via sockts. É possivel? Como poderia fazer?

Obrigado.

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

4 respostass a esta questão

Posts Recomendados

  • 0

use os componentes TServerSocket e TClienteSocket na aba internet

após a instalação deles use a função sendsocket..

Exemplo:

procedure button1.click (sender: TObject);

begin

ClientSocket1.Socket.SendText('DADOS A SEREM ENVIADOS');

end;

com essa função ele envia os dados para o servidor, caso queira enviar a um determinado cliente é o mesmo processo com o servidor.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia DelpheroMn.

Eu já estou usando os componentes citados. A questão que para enviar um texto normal eu já estou conseguindo. O problema é que eu queria enviar o conteudo de uma tabela que eu estou visualizando numa grid e gostaria de enviar para outra grid no cliente. Não sei se fui claro.

Obrigado pela atenção.

Link para o comentário
Compartilhar em outros sites

  • 0
Eu gostaria de enviar o conteudo dessa MemoryTable para um cliente via sockts. É possivel? Como poderia fazer?

Por acaso do outro "lado da linha" o aplicativo é seu? Ou se é de outro, ele espera que tipo de informação?

Se for seu, voce determina o protocolo desta conversação - supondo que você possa utilizar esta via (socket) para passar outras informações que não apenas a tabela citada.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, tem uma forma de fazer isso. No lugar onde está o client, você programa isso em um botão, ou onde desejar:

ClientSocket1.Socket.SendText(IntToStr('DADO1½DADO2½' +
      EdtDADO3.Text + '½DADO4½DADO5½');
Esse ½ servirá para separar um dado de outro, e você ira interpretar isso no servidor. Se você tiver apenas um parametro deverá ficar assim:
ClientSocket1.Socket.SendText(IntToStr('DADO1½½½½½');
Ou seja, você nunca vai apagar esse ½; No OnClientRead do servidor, você apaga tudo e adiciona esse código;
var
  texto: array [0 .. 4] of string;
  temptexto: AnsiString;
  I, IDx: Integer;
begin
  temptexto := Socket.ReceiveText;
  IDx := 0;
  for I := 1 to Length(temptexto) do
  begin
    if (temptexto[I] = '½') then
    begin
      texto[0] := Copy(temptexto, 1, I - 1);
      IDx := I;
      break;
    end;
  end;
  for I := IDx + 1 to Length(temptexto) do
  begin
    if (temptexto[I] = '½') then
    begin
      texto[1] := Copy(temptexto, IDx + 1, I - IDx - 1);
      IDx := I;
      break;
    end;
  end;
  for I := IDx + 1 to Length(temptexto) do
  begin
    if (temptexto[I] = '½') then
    begin
      texto[2] := Copy(temptexto, IDx + 1, I - IDx - 1);
      IDx := I;
      break;
    end;
  end;
  for I := IDx + 1 to Length(temptexto) do
  begin
    if (temptexto[I] = '½') then
    begin
      texto[3] := Copy(temptexto, IDx + 1, I - IDx - 1);
      IDx := I;
      break;
    end;
  end;
  for I := IDx + 1 to Length(temptexto) do
  begin
    if (temptexto[I] = '½') then
    begin
      texto[4] := Copy(temptexto, IDx + 1, I - IDx - 1);
      IDx := I;
      break;
    end;
  end;
Pronto, agora você já tem todos valores necessários; O texto[1] = DADO1; texto[2] = DADO2; Lembrando que se precisar passar mais parametros, copie esse codigo:
for I := IDx + 1 to Length(temptexto) do
  begin
    if (temptexto[I] = '½') then
    begin
      texto[5] := Copy(temptexto, IDx + 1, I - IDx - 1);
      IDx := I;
      break;
    end;
  end;

E cole abaixo dos outros no servidor, renomeando o texto[POEOPROXIMONUMEROAQUI]; Exemplo: Se o último for o texto[4], portanto você deverá renomear para texto[5] (DÃAAAAA. :S); E lembre-se de colocar mais um ½ no sendtext;

Ps. O seu SendText SEMPRE deverá terminar com um ½;

E agora, o melhor;

Seja feliz! :)

Editado por .lock
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,3k
×
×
  • Criar Novo...