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: