Esse artigo faz parte da revista Clube Delphi edição 5. Clique aqui para ler todos os artigos desta edição



Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

 

Leitores

 

Coluna dos Leitores

 

Bug do BDE

 

         Eu sou Valdery, o mais novo sócio do Clube Delphi, recebi a quarta edição do jornal e fiquei interessado na matéria “Bug do BDE”. Eu trabalho bastante com o banco de dados SQL Server e percebi que vocês fizeram uma observação sobre a gravação errada de alguns valores. Nós, programadores da Petrobras, por um determinado tempo tivemos este problema e descobrimos como solucioná-lo. Para que os valores informados não sejam alterados no instante da gravação, basta defini-los utilizando o tipo Float e não o Numeric como de comum. Fizemos a alteração e resolvemos este problema de gravação errada nos valores. Não sei se esta dica vai nos ajudar em alguma coisa a vocês mas é com muita alegria que envio este e-mail.

 

VALDERY JOÃO

 

Adicionar de uma tabela para outra

 

         Caros Amigos da Lista, tem como eu adicionar o conteúdo de uma tabela1 para uma outra tabela2, claro, as duas com a mesma estrutura. Isso em modo de execução. a tabela2 é uma tabela temporária que só recebe e envia para um determinado relatório, depois ela é esvaziada. Como são muitos campos eu não quero ficar copiando um a um de uma tabela para outra. Eu tentei usar o filter, ela chega a filtrar os conteúdos que eu quero, mas quando chega no QReport, ele imprime todo o conteúdo desta tabela filtrada.

Quem puder me ajudar eu agradeço desde já

Obrigado

Francisco.

 

Amigo Francisco,

 

         Para fazer isto basta utilizar ou o componente TBatchMove ou o método BatchMove da tabela. Agora, quanto ao QR, dá uma olhadinha se a tabela que você está filtrando é a mesma que está na propriedade DataSet do QR pois eu já fiz vários relatórios utilizando Filter e funcionou perfeitamente.

 

Boa Sorte.

 

VALFRID-LY SILVA COUTO

 

DBGrid

 

Pessoal,

 

         Tem um usuário de meu sistema que não aceita mudar de campo no DBGrid com o tab, ele quer que o enter funcione, e para isto, o que falta é eu saber quando ele está na última linha do DBGrid, assim quando ele estiver na última linha e na última coluna, teclando o enter, um novo registro será inserido.

 

Obrigado

 

Edmundo.

 

Amigo Edmundo,

 

         Para saber se o usuário está na última coluna, basta você fazer o seguinte:

 

if DBGrid.SelectedIndex <

(DBGrid.Columns.Count – 1)

then

DBGrid.SelectedIndex :=

DBGrid.SelectedIndex + 1

// Aqui passa para a próxima coluna

 

else

begin

DBGrid.DataSource.

DataSet.Append;

DBGrid.SelectedIndex := 0;

end;

 

Boa Sorte.

 

VALFRID-LY SILVA COUTO

 

Para os feras do SQL

 

Senhores,

         Tenho o seguinte comando SQL que não funciona:

 

Select *

From individuo

Where (Nome like ‘Fulano%’)

 

         Ou seja, desejo todos os registros cujo nome começa com Fulano. Simplesmente não retorna nenhum.

O que pode estar acontecendo?

Incompatibilidade de caracteres?

 

Obs. Trabalho com um arquivo em Access.

 

Obrigado a todos.

Osmar

Goiânia Go

 

Osmar... faz o seguinte... no Access use o asterisco(*) ao invés do porcento(%) Ah!!! Vc deve ter criado o Alias no BDE... e se você está usando o Access 97, quando você for abrir um relatório no QuickReport que use like.. vai dar erro!!! Faça o seguinte! Abra o Alias no ODBC ao invés do BDE ok? Então você pode voltar a usar o % novamente.

 

Roberto

 

ROBERTO BANKS DE CARMARGO

 

Campo calculado

 

         Oi pessoal, muito obrigado pelas respostas e pela ajuda! Estou com mais uma dúvida, como faço para criar um campo calculado que seja formado por uma substring de um outro campo na mesma tabela? Obrigado,...............Marçal!

 

         Lá vai Marçal. Primeiro vá em NewField e crie o campo calculado como tipo String e do tamanho que desejar. No evento OnCalcFields você faz o seguinte. Supondo que eu tenha um campo de nome com tamanho 40. Eu quero guardar no meu campo calculado as 10 primeiras letras (Isso é uma substring, não é?). Pois bem, assim faço:

 

DataSet [‘MeuCalculado’]:=

Copy(Table1Nome.Value,1,10):

 

Só isso!

 

FÁBIO SANTANA

 

Verificar se o Form já foi criado

 

         A todos,

 

         Preciso verificar se um formulário já foi criado, faço o controle da habilitação dos botões personalizados no DataSource dos Table’s, mas quando tenho que abrir uma tabela em outro formulário aparece uma mensagem de erro, porque estou acessando um objeto não criado. Há poucos dias deram como resposta para este problema usar o FindComponent, mas pelo que constatei isto só procura componentes dentro de um form e não verifica se o form já foi criado ou não.

         Desde já obrigado a todos, espero ter me expressado corretamente.

 

[]’s

Divo Alexandre

Brasília – DF

 

Segue abaixo:

 

if Assigned(Formulario) then

begin

Formulario :=

TFormulario.Create(Application);

Formulario.Show; end;

 

         Você não precisa declarar a variável, apenas adicionar a unit do form na seção uses;

[]’s

 

ANGELO BASSAY

 

Registrar OCX

 

Olá Pessoal,

 

Como registrar a classe de um OCX? Estou usando um componente OCX que vem com o Delphi, mas quando o sistema roda no cliente dá o seguinte erro:

Classe não registrada.

 

Grato,

Nilson

 

Caro colega,

 

         Caso você utilize o Install Shield, é só selecionar a opção ‘Allow express to self register this file’ que está na opção ‘Group’ propriedades do ocx a ser registrado. Outra forma é pelo prompt do MS-DOS. Entre no diretório ‘System’ do Windows e digite:

 

REGSVR32 nome_do_OCX

 

Obs. antes de mais nada, dê uma olhada no help do Delphi. Certas OCX’s necessitam registrar mais algum arquivo.

 

VINICIUS

 

 

 

Controle do NDS-NetWare

 

         Alguém tem a biblioteca ou componente para Delphi que controle o NDS da NetWare 4.xx e 5.xx da Novell? Agradeceria muito por essa biblioteca ou componentes.

 

Vinicius

 

Vinicius,

 

         Vá até http:”//developer.novell.com/ndk/delphilib.htm e faça o download das bibliotecas.

 

SERGIO PITER

 

Carta dos Leitores:

leitores@clubedelphi.com.br