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

Banco De Dados


Thales Pontes Martins

Pergunta

Salve programadores! É o seguinte: Eu fui solicitado a criar um sistema de banco de dados em TURBO PASCAL!, eu sei que é ridículo, mas o cara tá pagando né? fazer oque? Mas eu acho que a minha dúvida vale tanto para Delphi quanto para Pascal: Por exemplo, eu quero substituir uma tupla de uma tabela do meu banco por uma tupla que tenha tamanho maior, que contenha um texto de tamanho maior, por exemplo, que esteja lá pro meio do arquivo. Tem jeito de eu abrir esse espaço no meio do arquivo sem ter que deslocar todo o restante da tabela pra frente, oque tornaria o banco mais lento, obviamente. Tipo usando um artifício do próprio sistema de indexação do disco rígido, tipo quando não tem espaço consecutivo ele fragmenta o arquivo e põe em outro lugar, mas mantendo a perfeita ordem do arquivo internamente, somente fragmentando a nível de disco rígido. O mesmo ocorre quando eu quero colocar uma tupla de tamanho menor no lugar de outra, eu teria que deslocar todo o restante do arquivo para trás para economizar o espaço que irá vagar. alguém sabe se existe alguma maneira de fazer isso que eu disse, ou se alguém sabe como é que os bancos existentes fazem para resolver esse problema? Muito obrigado.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Acho muito difícil...

Os sistemas gerenciadores de bancos de dados existem exatamente para que não tenhamos que escrever códigos sobre a organização dos dados...

Acho que seria mais prático criar um pequeno "servidor" sql para receber as requisições de leitura e gravação do seu programa... tipo assim um programa que fique esperando sempre os comandos para inserir, atualizar, excluir e consultar os dados, e que pode ser configurado como um serviço (em máquinas com NT, 2000, 2003, XP Pro) ou tarefa mesmo (win98)...

Seu programa em TurboPascal pode criar um arquivo texto assim:

AssignFile(ftOutFile,'c:\sql\joao\comando.sql');

ReWrite(ftOutFile);

WriteLn(ftOutFile,'insert into '+chr(39)+':acme:produtos.db'+chr(39))

WriteLn(ftOutFile,'(codigoean, nome, preço)');

WriteLn(ftOutFile,'values');

WriteLn(ftOutFile,'('+chr(39)+'7890304840001'+chr(39)+','+chr(39)+'TODDYNHO'+CHR(39)+',1.99)');

CloseFile(ftOutFile);

O seu programa "servidor-SQL" lê este arquivo, executa seu conteúdo e pode até gravar nele mesmo o resultado da query...

Eu, se tivesse que escrever um programa em qualquer linguagem como o TbPascal, TurboBasic, Fortran, dBaseIII, etc... usaria, com certeza, este esquema...

Ok?

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...