Você está aqui: Delphi ::: dbExpress ::: TSQLDataSet |
Entenda e aprenda a usar a classe TSQLDataSet em suas aplicações DelphiQuantidade de visualizações: 13988 vezes |
A classe TSQLDataSet representa um dataset (conjunto de dados) unidirecional de múltiplos propósitos para o acesso a informações em um banco de dados usando dbExpress. Veja sua posição na hierarquia de classes Delphi:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- System.TObject Classes.TPersistent Classes.TComponent DB.TDataSet DB.TWideDataSet SqlExpr.TCustomSQLDataSet SqlExpr.TSQLDataSet Usamos objetos da classe TSQLDataSet para: a) Representar os registros de uma tabela no banco de dados, o resultado de uma query SELECT ou um conjunto de dados retornado por uma stored procedure. b) Executar uma query ou stored procedure que não retorna um conjunto de dados. c) Representar metados que descrevem o que está disponível em um banco de dados (tabelas, stored procedures, campos em um tabela, etc). Um objeto da classe TSQLDataSet pode ser criado de duas formas: a) Em tempo de design - Podemos criar um novo objeto TSQLDataSet acessando a Tool Palette, indo até a aba dbExpress e arrastando um controle SQLDataSet para o formulário ou DataModule. b) Em tempo de execução - Podemos criar um novo objeto TSQLDataSet em tempo de execução, ou seja, quando o programa já estiver sendo executado. Veja minhas outras dicas relacionadas a esta classe para ver como isso pode ser feito. Vamos então ver como podemos usar um TSQLDataSet? Siga atentamente os seguintes passos: a) Coloque um componente TSQLConnection em um formulário e faça a conexão com seu banco de dados preferido (se você ainda não sabe como fazê-lo, consulte minhas dicas sobre a classe TSQLConnection). b) Arraste um componente TSQLDataSet para o formulário e aponte sua propriedade SQLConnection para o componente de conexão com o banco de dados TSQLConnection. c) Defina a propriedade Connected do TSQLConnection como True. Isso abrirá a conexão com o banco de dados. d) Coloque o trecho de código abaixo no evento Click de um botão: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm3.Button1Click(Sender: TObject); begin // vamos definir o comando SQL a ser executado SQLDataSet1.CommandText := 'INSERT INTO contatos(nome, ' + 'telefone, email) VALUES(''OSMAR J. SILVA'', ''1234-5678'', ' + '''osmar@arquivodecodigos.net'')'; // vamos executar o comando SQLDataSet1.ExecSQL(True); // vamos mostrar uma mensagem indicando o sucesso da operação ShowMessage('Dados inseridos com sucesso.'); end; Execute a aplicação e clique no botão. Se tudo correu bem você poderá abrir o seu gerenciador de banco de dados e verificar se os dados foram inseridos na tabela corretamente. Neste exemplo eu usei uma tabela contatos com os campos id, nome, telefone e email. Em minhas outras dicas sobre a classe TSQLDataSet você aprenderá mais sobre a propriedade CommandText e o método ExecSQL(). |
Link para compartilhar na Internet ou com seus amigos: |
Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como usar recursividade em Delphi - Como usar recursão ou funções recursivas em DelphiQuantidade de visualizações: 15203 vezes |
Recursão ou recursividade é a habilidade que uma procedure ou function (função) possui de chamar a si própria uma vez, várias, indefinidamente ou até que a solução do problema a ser resolvido seja encontrada. Assim, podemos definir uma função recursiva (aqui uma procedure recursiva) em Delphi da seguinte forma (atenção: não execute este código):---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // uma procedure recursiva procedure Recursiva; begin // chama a si própria Recursiva; end; // vamos chamar a procedure pela primeira vez // a partir do Click de um botão procedure TForm1.Button1Click(Sender: TObject); begin Recursiva; end; O fato de eu pedir para que você não execute o código é que, uma vez clicado o botão, a procedure Recursiva será chamada e continuará chamando a si mesma até que a pilha do sistema estoure, ou seja, como funções recursivas são implementadas usando a pilha do sistema operacional e não na área de memória destinada a cada aplicativo o resultado será um travamento do programa, e, caso não estejamos com sorte, um travamento do sistema operacional. Sabedor do risco, clique no botão para ver o resultado você mesmo. O que devemos saber a respeito das funções recursivas é que estas precisam saber o ponto de parada, de forma a evitar chamadas infinitas. Como exemplo, veja uma procedure recursiva que conta de 0 até 10. Note como cada chamada verifica se já é hora de interromper a cadeia: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // uma procedure recursiva que conta de 0 até 10 procedure Contar(valor: Integer); begin // vamos exibir o valor atual ShowMessage(IntToStr(valor)); // é hora de parar? if valor = 10 then ShowMessage('Terminei') else begin // chama a si própria (note que aumentamos o valor atual em 1) Inc(valor); Contar(valor); end; end; // vamos chamar a procedure pela primeira vez // a partir do Click de um botão procedure TForm1.Button1Click(Sender: TObject); begin // chama a função recursiva fornecendo o valor inicial Contar(0); end; Execute este código e veja o resultado. Observe que a cada chamada recursiva nós incrementamos a variável de controle. Ela é a responsável por evitar que chamadas infinitas sejam feitas. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como obter e exibir todos os itens selecionados em uma TListBox do Delphi de seleção múltiplaQuantidade de visualizações: 14240 vezes |
Este trecho de código mostra como podemos obter e exibir todos os itens selecionados em uma TListBox de seleção múltipla. Para executá-lo, coloque uma ListBox, um Memo e um Button em um formulário. Altere a propriedade MultiSelect da ListBox para True, adicione alguns itens e execute. Selecione um ou mais itens e clique no botão para visualizar o resultado. Note que usei um TStringList (classe concreta derivada de TStrings) para armazenar os itens selecionados. Veja o código:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var i: Integer; selecionados: TStringList; begin // para que este exemplo funcione corretamente, a ListBox // deverá permitir seleção múltipla // ListBox1.MultiSelect := True; selecionados := TStringList.Create; // vamos obter os itens selecionados na ListBox if ListBox1.SelCount > 0 then begin for i := 0 to ListBox1.Count - 1 do begin if ListBox1.Selected[i] then selecionados.Add(ListBox1.Items[i]); end; // vamos exibir os itens selecionados em um TMemo Memo1.Lines.Clear; Memo1.Lines.Add('Os itens selecionados são:'); for i := 0 to selecionados.Count - 1 do Memo1.Lines.Add(selecionados[i]); end else ShowMessage('Nenhum item selecionado.'); // vamos liberar o TStringList selecionados.Free; end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: VCL - Visual Component Library ::: TComboBox |
Como usar a propriedade Items da classe TComboBox do DelphiQuantidade de visualizações: 13089 vezes |
A propriedade Items da classe TComboBox representa um objeto da classe TStrings, a classe base para objetos que representam uma lista de strings. Isso quer dizer que podemos acessar a propriedade Items e usar todos os métodos e propriedades da classe TStrings, tais como Add(), Clear(), Delete(), Exchange(), etc. Veja, por exemplo, como usar o método Add() para adicionar um novo item no ComboBox: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); begin // vamos adicionar um novo item ao ComboBox comboBox1.Items.Add('Arquivo de Códigos'); end; É possível obter um referência à propriedade Items para manipular os itens do ComboBox indiretamente. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var lista: TStrings; begin // vamos obter a lista de itens do ComboBox lista := comboBox1.Items; // vamos adicionar um novo item à lista lista.Add('Arquivo de Códigos'); end; Esta técnica é útil quando queremos inserir itens em um TComboBox a partir de uma função ou procedure. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // procedure personalizada para inserir itens em um TComboBox procedure inserirItensComboBox(lista: TStrings); begin lista.Add('Arquivo de Códigos'); lista.Add('Osmar J. Silva'); end; procedure TForm1.Button1Click(Sender: TObject); begin // vamos chamar a procedure que adiciona os itens no ComboBox inserirItensComboBox(ComboBox1.Items); end; Para finalizar, veja como escrever uma função personalizada que constrói e retorna uma lista de strings. Note como usamos o objeto TStrings retornado para preencher o ComboBox: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // função personalizada que constrói e retorna uma lista // de strings function obterLista: TStrings; var lista: TStringList; begin lista := TStringList.Create; lista.Add('Arquivo de Códigos'); lista.Add('Osmar J. Silva'); Result := lista; end; procedure TForm1.Button1Click(Sender: TObject); begin // vamos obter a lista de strings ComboBox1.Items := obterLista; end; Observe que, embora o retorno seja TStrings, no corpo da função nós construímos um objeto da classe TStringList. Isso acontece porque TStrings é uma classe abstrata e, portanto, não podemos chamar seu construtor. Como TStringList herda de TStrings e é uma classe concreta, esta é a escolha mais óbvia. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Vamos testar seus conhecimentos em Hidrologia |
(IFTM 2018) O Brasil possui uma das mais extensas e diversificadas redes fluviais do mundo, dividida em 12 regiões hidrográficas: Bacia Amazônica, Bacia Tocantins-Araguaia, Bacia do Paraguai, Bacia Atlântico Nordeste Ocidental, Bacia Atlântico Nordeste Oriental, Bacia do Paraná, Bacia do Parnaíba, Bacia do São Francisco, Bacia do Atlântico Leste, Bacia do Atlântico Sudeste, Bacia do Atlântico Sul e Bacia do Uruguai. Disponível em: http://www.brasil.gov.br/noticias/meioambiente/2009/10/rios-e-bacias-do-brasil-formam-uma-dasmaiores-redes-fluviais-do-mundo. Adaptado. Acesso em: 16 de out de 2018. Marque a alternativa que apresenta apenas as bacias hidrográficas que banham a Região Centro-Oeste. A) Paraná, Paraguai, Tocantins-Araguaia, Amazônica. B) Tocantins-Araguaia, Atlântico Sul, Uruguai, Paraguai. C) Paraguai, Uruguai, São Francisco e Atlântico Nordeste. D) Atlântico Nordeste, Paraguai, Amazônica, Parnaíba. E) Amazônica, Atlântico Leste, Tocantins-Araguaia e São Francisco. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?estados = {"SP": "SÃO PAULO", "GO": "GOIÁS", "RJ": "RIO DE JANEIRO", "MG": "MINAS GERAIS"} print("GO" in estados) A) "GO" B) True C) False D) "SP", "GO", "RJ", "MG" E) "GOIÁS" Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Introdução à Ética Como e por que julgamos que uma ação é correta ou não? Quais os critérios que devem ser utilizados para tal? Várias respostas são, hoje, dadas a essas perguntas. Podemos afirmar que a ação correta é aquela que: A) Considera a felicidade dos grupos prevalecentes, como as elites. B) É praticada por um agente inerentemente bom e sem influência social C) Está de acordo com regras próprias de grupos minoritários com interesses duvidosos. D) É considerada a melhor ação pela subjetividade do sujeito em suas reflexões. E) É aquela que está adequada às leis, regras e normas legais do Estado. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Alvenaria: Técnicas construtivas Durante o levantamento de alvenaria, para atenuar as tensões que ficarão concentradas nos contornos dos vãos de portas e janelas devido à descontinuidade da parede, é necessária a execução de elementos estruturais específicos. O elemento localizado acima dos vãos é denominado de: A) Marco. B) Caixilho. C) Esquadria. D) Verga. E) Contramarco. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Cálculo de velocidade de escoamento e vazão de canais usando a Equação de Manning Determine a vazão escoada em um canal com seção retangular, com lâmina d'água de 2,00m e largura de base igual a 3,00m e declividade 0,2m por Km. Utilize η=0,012. Selecione a resposta correta: A) 1,06 m3/s B) 0,84 m3/s C) 6,63 m3/s D) 4,22 m3/s E) 7,00 m3/s Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |