343o de computadores iv.doc) - · pdf filevisuais, tais como delphi, visual c, ... - checkbox...

49
Tecnologia Programação de Computadores IV UNISAL Centro Universitário Salesiano de Campinas Prof. Gale

Upload: lamdan

Post on 22-Mar-2018

245 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Tecnologia

Programação de Computadores IV

UNISAL

Centro Universitário Salesiano de Campinas

Prof. Gale

Page 2: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 2

INTRODUÇÃO

Antes do Visual Basic, todas as linguagens de programação eram parecidas do ponto de vista conceitual. Havia diferenças de sintaxe, é claro, bem como diferenças importantes de paradigmas. Entretanto, a metodologia da programação em C, por exemplo, era a mesma da programação em Pascal, Cobol ou Fortran. O Visual Basic introduziu uma estratégia radicalmente nova de programação. O fato é que, com o passar do tempo, escrever programas passou a ser cada vez mais difícil, especialmente programas que exigem interface gráfica. Entretanto, alguns programadores perceberam que muitas coisas que eram difíceis de ser feitas, como construir janelas, menus ou botões, podiam ser feitas sempre da mesma forma. Estes programadores, que já tinham o hábito de colecionar sub-rotinas de utilização geral, passaram a encapsular algumas destas rotinas em uma espécie de “objeto” pronto para ser usado. A idéia final, que deu origem ao Visual Basic, foi a percepção de que vários destes objetos podiam simplesmente ser desenhados na tela como se desenha um retângulo ou outra figura qualquer. O Visual Basic surgiu no começo da década de 90 e deu início a uma profusão de linguagens visuais, tais como Delphi, Visual C, Visual Fox Pro, etc. Entretanto, devido a estar mais tempo no mercado, o Visual Basic apresenta certas vantagens sobre os concorrentes. De fato, o VB (como chamaremos esta linguagem daqui para frente) é o pacote de programação que apresenta o maior número de controles no mercado, os quais o programador pode adquirir, muitas vezes sem ônus (como é o caso dos controles à disposição na Internet ou daqueles que vêem com alguns livros de programação). É claro que a linguagem por traz do VB é o Basic, mas esta linguagem nada tem a ver com aquele velho Basic interpretado dos primeiros computadores pessoais. Nos últimos anos o Basic se sofisticou e se transformou em uma linguagem estruturada que nada fica a dever ao Pascal, por exemplo. Ainda assim, trata-se de uma linguagem de alto nível e não de uma linguagem “quebradora de bits”, como o C. O Visual Basic, por outro lado, é um pacote de ferramentas de programação concebido para progra-mação em Windows. Os objetos são desenhados na tela de forma visual, com auxílio do mouse, e não por meio de programação. A programação, por outro lado, é orientada a eventos. O coração dos recursos de detecção de eventos do Windows é a sua arquitetura de mensagens. Quando um evento ocorre, tal como uma tecla pressionada ou um clique de mouse, uma mensagem é enviada para a fila de mensagens do Windows. A mensagem estará disponível para todos os aplicativos que estiverem rodando, mas apenas aquele interessado no evento responderá à mensagem. Tudo que o usuário precisa fazer é detectar o evento e mandar que um trecho de código seja executado quando isto acontecer. O VB torna esta tarefa fantasticamente fácil, como veremos.

DICAS DE PROGRAMAÇÃO • Planeje antecipadamente seus programas. Pense sobre o que é necessário fazer e quais as

ferramentas necessárias. Planejar é essencial para a programação e é comum que programadores iniciantes se esqueçam deste passo;

• Pense como o usuário. Lembre-se que o usuário não é um especialista em informática. Logo, você deve ser mais esperto do que ele. Também não é necessário tratá-lo como um idiota. Lembre-se da velha máxima da informática: “Um software que qualquer idiota possa usar será usado somente por um idiota !”;

• Pense nos controles. É comum que programadores inexperientes tentem desenvolver tudo com as próprias mãos, por falta de hábito ou somente “para provar que é possível”. Trata-se de uma perda de tempo, pois podem existir controles de software prontos que podem fazer o que você precisa;

O ambiente de trabalho do Visual Basic é formado por um conjunto de janelas que podem ser abertas

Page 3: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 3

e fechadas individualmente. A janela principal é aquela que contém a Barra de Menus (Menu Bar) e a Barra de Ferramentas (Tool Bar), conforme mostrado na figura 1 abaixo

Figura 1 - Barra de Menus e de Ferramentas Como pode ser visto, esta janela contém os controles usuais de qualquer aplicativo Windows, tais como Abrir Arquivo, Salvar Arquivo, Editar, etc. A figura 2 mostra a Caixa de Ferramentas (Tool Box), que contém todos os controles personalizados (objetos) do Visual Basic. A figura 3 mostra a Janela de Propriedades (Properties Window) que permite o acesso a todas as propriedades do controle selecionado. Fig. 2 Fig. 3 Fig. 4

A figura 4 mostra a Janela do Projeto (Project Window), que permite o acesso a todos os arquivos do projeto em questão.

Para abrir cada uma destas janelas você pode usar o menu View, ou, então, digitar F4 para abrir a Janela de Propriedades e Ctrl+R para abrir a Janela do Projeto. A Caixa de Ferramentas não tem tecla de atalho associada.

ALGUMA TERMINOLOGIA Um objeto, em Visual Basic, é uma conjunto de códigos de programação (sub-rotinas) e propriedades. Na verdade, cada elemento que você vê em um programa Windows é um objeto individual, dotado de propriedades características.. Exemplo: Objeto Avião: Propriedades: velocidade, altitude, inclinação, etc.; Rotinas: decolar, aterrissar, taxiar, etc. Mudando as propriedades de um objeto, podemos mudar a forma como ele interage com o ambiente. Na programação em VB não é necessário ter um conhecimento muito grande de programação orientada a objetos, como é necessário em outras linguagens. Os objetos estão prontos para serem usados e o Visual Basic cuida de quase tudo. A programação em VB não é um exemplo

Page 4: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 4

de “Programação Orientada a Objetos” (POO), como é o caso do C++ ou do Object Pascal. O termo “objeto”, em VB, é usado de uma maneira um pouco diferente, mas isto não significa que a abordagem seja deficiente. É apenas diferente da POO clássica. Projeto é o nome dado a um aplicativo desenvolvido em Visual Basic. O arquivo do projeto (.vpb) é apenas uma lista de todos os outros arquivos que fazem parte do aplicativo, tais como:

• formulários (.FRM); • módulos de programação (.bas); • controles de 16 bits (.VBX); • controles de 32 bits (.OCX); • bancos de dados (.mdb).

Quando se gera o programa executável, o VB cria um arquivo .EXE que tem todas as características do arquivo .VBP, mas que pode ser executado fora do ambiente do VB. a janela TOOLBOX (Caixa de Ferramentas) - é a janela que traz os Controles (as ferramentas no VB)

- Pointer – Não é um Controle, mas uma ferramenta que serve

para mover e dimensionar Controles;

- PictureBox – Exibir figuras ou ícones nos Formulários.

Também responde ao Evento click.

- Label – Etiqueta ou rótulo, exibe um texto que não pode

ser editado pelo usuário. Uso: Títulos.

- TextBox – Exibe uma área onde o usuário pode digitar texto.

- Frame – Moldura para agrupar Controles para que

funcionem de forma lógica.

- CommandButton – Botão de Comando. Executa ação ao ser

clicado.

- CheckBox – Pode assumir valores falso ou verdadeiro. Em um mesmo Formulário vários

CheckBoxes podem assumir o valor verdadeiro ao mesmo

tempo.

- OptionButton – Pode também assumir valores falso/verdadeiro, mas em um mesmo

Formulário somente um OptionButton pode assumir o valor verdadeiro.

- ComboBox – Combina caixa de texto com caixa de listagem. O usuário pode digitar a

informação como também pode encolher da lista.

- ListBox – Exibe uma lista de itens que o usuário pode selecionar.

Page 5: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 5

- ScrollBar Horizontal e Vertical – Permite selecionar com o mouse um determinado

valor numa faixa de valores.

- Timer – Controla intervalos de tempo determinados pelo programador.

- DriveListBox – Exibe uma lista de drives onde o usuário pode selecionar um.

- DirListBox – Exibe uma lista de diretórios (pastas) e permite que o usuário selecione um.

- FileListBox – Idem para arquivos.

- Shape – Adiciona diversas formas geométricas ao Formulário.

- Line – Adiciona linhas a Formulários.

- Image – Exibe figuras ou ícones e funciona como um CommandButton quando clicado.

- Data – É o DataControl, que permite conectar-se a um Banco de Dados existente para

extrair manipular as informações contidas neste.

- OLE – Incorpora objetos de outros aplicativos em um Formulário.

- CommonDialog – Exibe um conjunto de caixas de diálogo comuns no Windows, abrir

arquivo, imprimir, fontes, salvar, etc.

- ToolBar – Contem uma coleção de Botões e é utilizado para criar Barras de Ferramentas

que estão associadas com uma aplicação.

- StatusBar – Cria uma Barra de Status para um programa com até 16 painéis contidos em

uma coleção de painéis.

- ProgessBar – Barra que indica o progresso de uma operação.

- ImageList – Contém uma coleção de objetos ListImage. Para exibir imagens.

Page 6: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 6

- DBList – Automaticamente preenche uma lista com campos de um DataControl e

opcionalmente passa o campo selecionado para um segundo DataControl. O DBCombo é

similar mas permite editar o campo selecionado.

- DBGrid – Exibe e manipula uma série de linhas e colunas representando Registros e

Campos de um objeto Recordset.

CONVENÇÕES DE NOMES PARA CONTROLES É sempre bom estabelecer convenções de nomes para objetos do Visual Basic, sob risco de não se saber, no meio de um projeto mais complicado, qual o tipo de um objeto cujo nome é, por exemplo, “dados”. A tabela 3 a seguir apresenta alguns exemplos para os controles mais comuns.

Tabela 3

Controle Nome em Português Prefixo Exemplo

Form formulário frm frmAbrir Check Box Caixa de Verificação chk chkLeitura Combo Box Caixa “Combo” cbo cboPortuguês Command Button Botão de Comando cmd cmdCancelar Data Dados dat datLivros Directory List Box Caixa de Diretório dir dirFontes Drive List Box Caixa de Drives drv drvAlvo File List Box Caixa de Arquivos fil filArquivos Frame Quadro fra fraLíngua Grid Grade grd grdPreços Horizontal scroll bar Barra de Rolagem Horizontal hsb hsbVolume Image Imagem img imgÍcone Label Rótulo lbl lblMensagem Line Linha lin linVertical List Box Caixa de Lista lst lstCEP Menu Menu mnu mnuSalvar OLE OLE ole oleObjeto Option Button Botão de Opções opt optFrancês Picture Box Caixa de Figuras pic picDesenho Shape Forma (geométrica) sha shaCírculo Text Box Caixa de Texto txt txtEntrada Timer Temporizador tmr tmrAlarme Vertical Scroll Bar Barra de Rolagem Vertical vsb vsbTaxa

Page 7: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 7

Palavras-Chaves

• Name • Caption • MinButton • MaxButton • ControlBox • Window State • Backcolor

name_objeto.propriedade = ????

1ª AULA VISUAL BASIC – PROF. GALE

Page 8: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 8

Palavras-Chaves

• Label (name, caption, font, forecolor) • Text (name , text ) • Command Button (name, caption, font) • Timer (interval) • Date , Time • Option Button • Mousemove • End • Hide , Show

Cores • RGB (0..255, 0..255, 0..255) • Constantes: vbred, vbgreen, vbblack, ... • Qbcolor (0..15)

Page 9: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 9

2ª AULA VISUAL BASIC – PROF. GALE

Palavras-Chaves • Shape (fillcolor, fillstyle, shape) • VScroll (max, min, value) • Textos: fontitalic, fontbold, fontunderline,

fontsize, forecolor • Decisão:

if (condição) then

else (opcional)

endif

Page 10: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 10

3ª AULA VISUAL BASIC – PROF. GALE

Palavras-Chaves • Variáveis Globais: declaradas quando

necessitamos utilizar em vários forms a mesma variável � Global variável

• Form (picture) • Image (picture, left, top) • Seleção:

Select Case testexpression [Case expressionlist-n [statements-n]] . . .

[Case Else expressionlist-n [elsestatements-n]]

End Select

Page 11: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 11

Permitem exibir uma mensagem em uma janela e aguarda que o usuário escolha um botão. Uma caixa de mensagem pode ser utilizada de duas maneiras:

• Como comando, não sendo possível retornar valor • Como função, retornando assim um valor Sintaxe: `Como função: MSGBOX (Mensagem[,[tipo][,título]]) Como comando: MSGBOX mensagem[,[tipo][,título]] Onde: mensagem : é o próprio escrito

Tipo : deve conter uma expressão numérica opcional composta por uma soma de valores que especificam a quantidade e o tipo dos botões, o ícone que será exibido e o estilo da janela.

De acordo com a tabela: Tipos de Botões Valor Descrição MB_OK 0 Mostra apenas o OK MB_OKCANCEL 1 “ OK e CANCEL MB_ABORTRETRYIGNORE 2 “ ABORT, RETRY, IGNORE MB_YESNOCANCEL 3 “ SIM, NÃO, CANCEL MB_YESNO 4 “ SIM, NÃO MB_RETRYCANCEL 5 “ RETRY, CANCEL Ícones: MB_ICONSTOP 16 STOP MB_ICONQUESTION 32 ? MB_ICONEXCLAMATION 48 ! MB_ICONINFORMATION 64 i

Título: expressão do tipo caracter que será exibida na barra de título da janela. Obs: Para pular linha utilizamos CHR$(13)

Exemplo: MsgBox "Preste Atenção!!!", 16, "ERRO" MsgBox "Você deverá pressionar algum botão...", 67, "INFORMAÇÃO" Os valores retornados pela MSGBOX indicam qual o botão que foi pressionado. Tipos de Botões Valor IDOK 1 IDCANCEL 2 IDABORT 3 IDRETRY 4 IDIGNORE 5 IDYES 6 IDNO 7

4ª AULA VISUAL BASIC – PROF. GALE

Page 12: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 12

Crie cada “msgbox” em um botão diferente:

Page 13: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 13

4ª AULA – Continuação... VISUAL BASIC – PROF. GALE

Comando

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

Exemplo:

Text1.text = format$ (date, “dd/mmm/yyyy”)

Palavras - Chaves Objetos:

Drive / Dir / File (pattern) Image (loadpicture , strech, filename )

Page 14: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 14

Exercícios – Faça Você

Page 15: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 15

Page 16: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 16

Instruções para Desenvolvimento dos Exercícios de Visual Basic

Atenção: Este é um único projeto formado por 12 formulários diferentes. Cada formulário deve ser acessado pelo botão próximo ou anterior. É necessário criar um formulário antes de chamá-lo. Como se faz isso??

� Vá até o menu do Visual Basic na opção Project / Add Form � aparecerá uma tela onde você deverá escolher “Form” e teclar abrir ou mesmo teclar duas vezes sobre o próprio form. Se você fez a “coisa” certa aparecerá no seu canto superior direito “Form2”, e assim por diante. Dicas para realização dos formulários: Form 1: � o usuário digita um nome e um sobrenome e quando teclar concatenar exiba na terceira textbox o nome e sobrenome juntos (+) � para colocar o botão próximo não se esqueça: � form1.hide (para esconder o primeiro formulário) � form2.show (para chamar o outro formulário) � para colocar figuras dentro do botão, altere a propriedade “Style” para “graphical” e escolha uma figura dentro da propriedade “Picture” � no botão sair exiba uma msgbox perguntando realmente se deseja ou não sair do programa. Form 2: � Permita o usuário digitar dois números e pressionando “Somar” exiba a soma dos dois. Cuidado: os valores digitados em uma textbox são textos, sendo necessários converter o texto para números, utilizando assim o comando “val”. Ex: a = val(text1.text) Form 3: � Permita o usuário digitar o Salário Bruto, as horas extras e o salário família. � Na textbox dos descontos deve-se conter uma soma do valor calculado do INSS + IRRF � o INSS corresponde a 8% do salário bruto � O imposto de renda e a faixa de imposto de renda deve obedecer o cálculo feito no jornal, procure-o � Esta empresa paga R$ 10,00 para cada hora extra feita � O salário líquido é a soma do salário bruto + horas extras + salário família – descontos � Se o Salário líquido ultrapassar R$ 5.000,00 exiba uma mensagem qualquer na caixa de mensagem do final do formulário. � O botão limpar, limpa todos os conteúdos das textbox Form 4: � Permita o usuário digitar uma temperatura em Celsius e quando pressionar calcular exiba em farenheit, kelvin e rankine. Form 5: � Permita o usuário digitar 3 valores e utilizando o comando “if” exiba o menor e o maior valor digitado. Form 6: � Permita o usuário digitar dois valores. De acordo com a opção desejada mostre o resultado na textbox. Cuidado:

� para se calcular raiz quadrada utiliza-se “sqr” � para seno utiliza-se sin � para cosseno utiliza-se cos � O mod retorna o resto da divisão em Visual � Os valores de seno e cos devem ser convertidos para graus: 3.1415 / 180

Form 7: � Permita o usuário digitar um número de um mês e utilizando obrigatoriamente o comando “Select case” exiba por extenso o mês. � exiba também uma hora e data correntes Form 8:

Page 17: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 17

� Permita o usuário escolher um número e no momento que teclar “Mostrar” exiba a tabuada deste número em uma “ListBox”. � Para utilização de uma listbox é necessário um comando de laço (for), um método chamado “Additem” para preencher cada linha da listbox. Form 9: � A hora em que o usuário entrar neste formulário a bolinha comece a acender e apagar no sentido horário e o número que se encontra no meio vai diminuindo até chegar ao 1, voltando rapidamente ao 10 e continuando o processo. � As bolinhas devem esperar 1s para apagar e acender. Form 10: � Desenvolva dois shapes (um do lado esquerdo e outro do lado direito), a medida em que o usuário entrar no formulário este vão juntos ao mesmo tempo um para o lado esquerdo e outro para o direito, chegando volta e continua o processo. Form 11: � Coloque nas textbox os valores dos resistores e calcule a resistência equivalente em série e em paralelo. Form 12: � Permita trocar o valor das duas textbox e permita recalcular o salário de uma determinada pessoa, com base no aumento escolhido de 5%, 10%, 15% ou 20%.

Page 18: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 18

Manipulando Strings

I-) As funções strings básicas

Primeiro vamos mostrar as funções para tratamento de strings presentes em todas as versções do VB:

a-) Str(numero) - Converte um valor numérica em uma string do tipo Variant

Dim String String = Str(459) ' Resultado => " 459". String = Str(-459.65) ' Resultado = > "-459.65". String = Str(459.001) ' Resultado = > " 459.001".

b-) Len(string ) - Determina o número de caracteres de uma string. (o comprimento da string)

Dim sNome As String Dim tamanho As Long sNome = "Visual Basic" tamanho = Len(sNome) 'Resultado => a variavel tamanho será igual a 12

c-) Chr$(codigo_do_caractere) - Retorna uma string caractere associado ao código indicado

Dim Caractere Caractere = Chr(65) ' Resultado ==> A Caractere = Chr(97) ' Resultado ==> a Caractere = Chr(62) ' Resultado ==> > Caractere = Chr(37) ' Resultado ==> %

Para exibir os códigos de todos os caracteres de 0 a 255 use o código a seguir:

Dim i as integer For i=0 to 255 Debug.Print i; chr$(i) Next

d-) Asc(string) - Retorna um valor inteiro que representa o código do primeiro Caractere da String.

Dim MyNumber Numero = Asc("A") ' Resultado => 65. Numero = Asc("a") ' Resultado => 97. Numero = Asc("Amor") ' Resultado => 65.

e-) Space(numero) - Retorna uma string do tipo Variant contendo a quantidade de espaços indicados por número.

String = "Visual" & Space(10) & "Basic" - insere dez espaços entre as strings Visual e Basic

f-) String$(Tamanho,String) - Cria uma string com comprrimento igual a Tamanho e que contém o primeiro caráter indicado em String. Se String tiver mais de um caractere somente o primeiro será usado.

String$(9,"VISUAL") 'retorna => "VVVVVVVVV"

g-) Trim$(string) - Remove os espaços eexistentes de ambos os lados de uma string.

Dim MVar

5ª AULA VISUAL BASIC – PROF. GALE

Page 19: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 19

MVar = Trim(" visual basic ") 'MVar irá conter ==> "visual basic".

h-) RTrim$(string) - Remove os espaços a direita da string.

Dim MVar MVar = RTrim(" visual basic ") 'MVar irá conter ==> " visual basic".

i-) LTrim$(string) - Remove os espaços a esquerda daa string.

Dim MVar MVar = LTrim(" visual basic ") 'MVar irá conter ==> "visual basic ".

j-) LCase$(string) - Converte todos os caracteres alfanuméricos na string para minúsculas.

LCase("SÃO JOSE DO RIO PRETO , 12-08-2001") retorna ==> são jose do rio preto , 12-08-2001

l-) UCase$(string) - Converte todos os caracteres alfanuméricos na string para maiúsculas.

LCase("São Jose Do Rio Preto , 12-08-2001") retorna ==> SÃO JOSE DO RIO PRETO , 12-08-2001

II) Substrings

Substrings são pedaços de uma string. Veremos a seguir as principais funções para o tratamento de substrings.

a-) Left$(String, Tamanho) - Retorna uma string contendo o número de caracteres definido em Tamanho do lado esquerdo da String.

Left$("Programar com Visual Basic é fácil", 9) Retorna ==> "Programar"

Left$("Programar com Visual Basic é fácil", 50) Retorna ==> "Programar com Visual Basic é fácil"

Left$("Programar com Visual Basic é fácil", 0) Retorna ==> ""

b-) Right$(String, Tamanho) - Retorna uma string contendo o número de caracteres definido em Tamanho do lado direito da String.

Right$("Programar com Visual Basic é fácil", 8) Retorna ==> " é fácil"

Right$("Programar com Visual Basic é fácil", 50) Retorna ==> "Programar com Visual Basic é fácil"

Right$("Programar com Visual Basic é fácil", 0) Retorna ==> ""

c-) Mid$(String, Inicio,[Tamanho]) - Como função retornaa uma substring da String dada , começando no primeiro caractere de Inicio com comprimento definido em Tamanho. Se Tamanho for omitido ou for menor que o comprimento da string todos os caracteres a partir de inicio será retornado.

Texto = " Usando strings no Visual Basic"

Mid$(texto,7,7) retorna => "strings"

Mid$(texto,7) retorna => "strings no Visual Basic"

Podemos usar MID$ para substituir uma parte da string dada, a partir do primeiro caractere da posição Inicio.

Texto ="Isto é um teste"

Mid$(texto,6)="123456" retorna => "Isto 123456"

Page 20: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 20

Mid$(texto,6,3)="123456" retorna => "isto 123m teste"

Mid$(texto,8)="12" retorna => "Isto é 12 teste"

d-) Instr$(Inicio,string1,string2,[Compare]) - Determina a posiçãoo da primeira ocorrência de uma substring contida em uma string. Retorna uma variant do tipo Long.

Os argumentos são :

Argumentos Descrição

Inicio Expressão numérica que define a posição de inicio para iniciar a procura. Se omitida a procura começa no inicio da string.

string1 A expressão string a ser procurada.

string2 A expressão string a procurar.

compare Determina o tipo de comparação que será feito entre as strings.

Os possiveis tipos de comparação são:

Constante Valor Descrição

vbUseCompareOption -1 A comparação será feita como definida em Option Compare

vbBinaryCompare 0 Comparação binária

vbTextCompare 1 Comparação textual

vbDatabaseCompare 2 Comparação com base no seu banco de dados . Só para o Microsoft Access

Exemplos: Dim String1, String2, posicao String1 = "Visual Basic 6 A linguagem" ' string onde será feita a procura String2 = "a" ' Substring a procurar ' comparação textual iniciando na posicao 4 posicao = InStr(4, String1, String2, 1) 'Retorna => 5. ' Comparação binaria iniciando na posicao 1 posicao = InStr(1, String1, "A", 0) 'Retorna => 16 ' Comparação binária posicao = InStr(String1, "A") 'Returns => 16 posicao = InStr(1, String1, "W") ' Returns 0 (não achou)

Page 21: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 21

Nota: Observe que :

Se A função InStr irá retornar:

string1 for igual a "" 0

string1 for Null Null

string2 for igual a "" Inicio

string2 for igual a Null Null

string2 não for encontrada 0

string2 for encontrada em string1

A posição onde ela for encontrada

start > string2 0

d-) Split(string,delimiter,count,compare_mode] VB6 - Divide uma string e retorna as substrings como um array de strings.

Parte Descrição

String ( expressão ) Uma expressão string . Se a expressão for uma string vazia ("") o array retornado estar vazio, ou seja , sem elementos.

delimiter Um string caractere usado para identificar Indica onde a divisão vai ocorrer. Se for omitida o caracter de espaço (" " ) será usado. Se for utilizado uma string vazia ("") então um array contendo a expressão completa será retornada.

Count O número máximo de substrings a ser retornada. -1 indica que todas as substrings serão retornadas.

compare Valor numérico indicando o tipo de comparação a usar quando da avaliação das substrings . Veja os valores abaixo:

Os valores de compare podem ser:

Constante Valor Descrição

vbUseCompareOption –1 Realiza uma comparação com base na definição de Option Compare.

vbBinaryCompare 0 Realiza uma comparação binária.

vbTextCompare 1 Realiza uma comparação textual.

vbDatabaseCompare 2 Somente para arquivos Microsoft Access.

Exemplo 1- Vamos dividir a string "Visual Basic 6" (voce pode testar com diversas expressões)

1:Private Sub Command1_Click() 2:Dim i As Integer 3:Dim vetor As Variant 4:vetor = Split(Text1.Text) 5:List1.Clear 6:For i = LBound(vetor) To UBound(vetor) 7: List1.AddItem i & vbTab & vetor(i) 7:Next 8:End Sub

Inicie um projeto no VB e no formulario padrao insira uma caixa de texto , uma caixa de listagem e um botão de comando Abaixo veja o resultado do código ao lado:

Page 22: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 22

O código para dividir strings e gerar vetores de substrings O resultado gera 3 substrings: vetor(0), vetor(1) e vetor(2)

No exemplo acima usamos a função LBound para determinar o valor do menor índice de um array e UBound para determinar o maior valor para um índice de um array. Assim acessaremos todos os índices do array.

Se substituirmos o código da linha 4 por : vetor = Split(Text1.Text,,2) iremos obter duas substrings: 0 Visual 1 Basic 6

Exemplo 2- Vamos acrescentar o caracter "s" para indicar onde a divisão irá ocorrer

Private Sub Command1_Click() Dim i As Integer Dim vetor As Variant vetor = Split(Text1.Text,"s") List1.Clear For i = LBound(vetor) To UBound(vetor) List1.AddItem i & vbTab & vetor(i) Next End Sub

Inicie um projeto no VB e no formulario padrao insira uma caixa de texto , uma caixa de listagem e um botão de comando Abaixo veja o resultado do código ao lado:

Note que a divisão teve inicio no caracter "s" , retornando 4 substrings contidas nos vetores com indices 0,1,2 e 3.

Podemos aproveitar esta última característica para 'contar' quantas vezes uma substring aparece numa string. Por exemplo , suponha que você queira saber quantas vezes a substring "do" aparece na frase : "Avaliação do impacto do treinamento no trabalho do programador". Usando Split fica fácil ...:

1:Dim frase As string 2:Dim vetor As Variant 3:frase = "Avaliação do impacto do treinamento no trabalho do programador" 4:vetor = Split(frase,"do") 5:MsgBox " 'do' aparece na texto ' " & frase & " ' " & UBound(vetor) & " vezes."

Page 23: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 23

Você ter como resposta que 'do' aparece 4 vezes no texto, pois 'do' também esta contida na palavra 'programador'. Para contar somente as ocorrências da preposição 'do' altere a linha 4 do código para: 4:vetor = Split(frase," do ") e você obterá como resposta 3 vezes.

e-)Join(List,Delimter) VB6 - Concatena as substrings contidas em <List em uma única string.

-List - deve ser um array de uma dimensão contendo as strings a serem concatenadas

-Delimiter - Caractere string usado para separar as substrings na string retornada. Se omitida o caractere (" ") sera usado. Se for uma string vazia ("") , todos os itens da lista serão concatenados sem delimitadores.

Exemplo:

Dim array(1 to 4) As String

Dim sJunta As String

array(1)="Visual" array(2)="Basic" array(3)="6" array(4)="A linguagem" sJunta= Join(array," ") retorna => "Visual Basic 6 A linguagem" sJunta= Join(array) retorna => "Visual Basic 6 A linguagem" sJunta= Join(array,",") retorna => "Visual,Basic,6,A,linguagem" sJunta= Join(array,":") retorna => "Visual:Basic:6:A:linguagem" sJunta= Join(array,"") retorna => "VisualBasic6Alinguagem"

g-) Filter(Varlist, Value, Include, Compare) VB6 - Procura em VarList pelas strings definidas em Value e retorna o resultado em um array.

- VarList - contém um array de strings que a função irá filtrar

- Value - é a string de caracteres usada para identificar qual elemento será incluída no novo array.

- Include - Um valor boleano que indica se os elementos contendo o valor coincidente será incluido ou não na string . O valor padrão é True.

- Compare indica como a busca por Value será efetuada.

Os valores de compare podem ser:

Constante Valor Descrição

vbUseCompareOption –1 Realiza uma comparação com base na definição de Option Compare.

vbBinaryCompare 0 Realiza uma comparação binária.

vbTextCompare 1 Realiza uma comparação textual.

vbDatabaseCompare 2 Somente para arquivos Microsoft Access.

Exemplo:

Page 24: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 24

Dim vetor(1 to 3) As String Dim i as integer Dim sFiltra As Variant vetor(1)="Visual" vetor(2)="Basic 6" vetor(3)="a linguagem" sFiltra=Filter(vetor,"a") List1.Clear For i = LBound(vetor) To UBound(vetor) List1.AddItem i & vbTab & vetor(i) Next

h-) StrReverse(string) - VB6 - Retorna uma string com os caraccteres invertidos.

Exemplo: StrReverse ("Visual Basic") retorna => cisaB lausiV

Se string for um for um valor Null ocorrerá um erro.

h-) Replace(string, strProcura, strSubstPor, Inicio, Contador, Compare)

1. String - é a string a ser alterada

2. strProcura - é a string a procurar em <String>

3. strSubstPor - é a string usada para substituir a string <strProcura>

4. Inicio - indica o incio da busca por <strProcura>. (Opcional)

5. Contador - indica o número máximo de vezes que <strProcura> será substituida

6. Compare - o modo de comparação a ser efetuada.

Esta função é muito útil para substituir ocorrências em uma string por um determinado valor. Vamos mostrar um exemplo onde vamos substituir todas a vírgulas(,) em uma frase por ponto e vírgula(;):

Exemplo:

Frase = " Geralmente , temos um problema , quando a temperatura aumenta " NovaFrase = Replace(Frase, "," , ";" ) retorna => "Geralmente ; temos um problema ; quando a temperatura"

Nota: Observe que você deverá estar atento ás seguintes ocorrências:

Se A função strReverse irá retornar:

string for igual a "" ""

string for Null Um erro

strProcura for igual a "" Uma cópia de string

strSubstPor for igual a "" Uma cópia de string com todas as ocorrências de StrProcura removidas

Inicio > string Uma string vazia ""

contador for igual a zero Uma cópia de string

Page 25: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 25

FORMULÁRIO

Page 26: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 26

Criação de Menus

Menus são criados usando a janela Menu Design. Você adiciona itens ao menu em tempo de projeto pela criação de controles de menu e setando propriedades que definirão sua aparência. Para a criação de um Menu devemos ir ao menu Tools – Menu Editor ou teclar Ctrl+E. 1) Começamos digitando o Título (em Caption) do Menu mais à esquerda. Caso desejemos acessar esse menu via Alt e a

letra grifada devemos inserir o & antes da letra que será grifada. No exemplo abaixo: &TesteMenu (que aparecerá como TesteMenu);

2) Depois digitamos o nome (em Name) do Menu para referência em Código; 3) Os outros itens não são obrigatórios; 4) Clicar em Next para entrar um novo Menu ou item de Menu. Caso seja um item de Menu devemos clicar na seta para a

direita quando aparecerão três pontinhos a esquerda do título do item que ficará abaixo do nome do Menu. 5) Os Menus e os itens de Menus podem ser referenciados em Código através do Evento Click, que deve ser feito no

Formulário após teclarmos em OK.

Desenvolva o seguinte menu: Arquivo � novo � abrir � texto � figura � sair Editar � colar � normal � especial � copiar Ajuda

6ª AULA VISUAL BASIC – PROF. GALE

Page 27: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 27

Botões Indexados

Geramos um botão indexado quando copiamos e colocamos um botão e mantemos o mesmo “name”. O que diferencia um botão de outro é apenas a propriedade “index”, que retorna um valor numérico iniciado pelo valor 0.

No menu Project – Components, procurar: MICROSOFT Windows COMMON CONTROLS-2 6.0

OBJETO – DTPICKER (propriedade Value)

Sintaxe do Comando: DateDiff(interval, date1, date2)

Configura Descrição

yyyy Year

q Quarter

m Month

y Day of year

d Day

w Weekday

ww Week of year

h Hour

n Minute

s Second

Page 28: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 28

Common Dialog

No menu Project – Components, procurar: MICROSOFT COMMON DIALOG CONTROLS-2 6.0

• Esse objeto permite exibir cinco caixas de diálogo nos padrões do Windows. • Apenas uma caixa de diálogo pode ser exibida a partir de um objeto Common Dialog. • Para exibir uma determinada caixa de diálogo, deve ser utilizado o método correspondente à caixa

desejada. • Os conteúdos das caixas são controlados através de suas propriedades, ou seja, quando uma caixa é

preenchida, os resultados são apresentados por suas propriedades. Caixas de Diálogo e sua utilização: Abrir: para abrir um arquivo. Método correspondente: ShowOpen Salvar Como: para salvar um arquivo. Método correspondente: ShowSave Imprimir: para definir as opções de impressão. Método correspondente: ShowPrinter Fonte: para definir uma fonte e um estilo para textos. Método correspondente: ShowFont Cor: para escolher uma nova cor da paleta. Método correspondente: ShowColor

NOTAS: Um objeto CommonDialog não é visível ao usuário em tempo de execução do programa. Propriedades correspondentes à CommonDialog Abrir: Filter: define quais os tipos de arquivos deverão ser exibidos. Por exemplo: commondialog1.filter = “Bitmaps (*.BMP) | *.BMP |Metafiles (*.WMF) | *.WMF”

Filename: define o nome do arquivo selecionado.

7ª AULA VISUAL BASIC – PROF. GALE

Page 29: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Arquivo Texto

ABERTURA DE ARQUIVOS Abrir um arquivo significa “alocar um buffer do computador para eventos de entrada e saída”. O Visual Basic disponibiliza o comando Open, cuja sintaxe é mostrada abaixo.

Open Nome_do_Arquivo [For Modo][Access acesso][Lock] As [#] nº_do_arquivo [Len=comp.], onde:

• Nome_do_arquivo: String que contém o nome do arquivo e caminhos eventuais. Se o caminho não for especificado, o arquivo será aberto na pasta atual;

• Modo: palavra-chave que especifica o modo de acessão arquivo, conforme a tabela 9; • Acesso: palavra-chave opcional que especifica as operações permitidas no arquivo aberto, conforme

a tabela 10; • Lock: palavra-chave opcional que controla o acesso a um arquivo por outros processos, conforme a

tabela 11; • nº_do_arquivo: número do próximo arquivo livre (1 a 255) • comp.: tamanho do registro, em bytes, para arquivos aleatórios, ou o tamanho do buffer para

arquivos seqüenciais. Modos de abertura de arquivo

Modo Acesso ao arquivo APPEND Acesso seqüencial; se o arquivo já existe, novos dados serão adicionados no final dos dados já

existentes. Se o arquivo não existe, ele é criado. BINARY Acesso binário para leitura e escrita. Se o arquivo não existe, ele é criado. INPUT Acesso seqüencial para leitura. Se o arquivo não existe, ocorre um erro. OUTPUT Acesso seqüencial para gravação. Se o arquivo já existe, ele é eliminado e um outro é criado. Se o

arquivo não existe, ele é criado. RANDOM Acesso aleatório para leitura e gravação. Se o arquivo não existe, ele é criado. Esse é o padrão se o

argumento Modo for omitido.

Por exemplo, para abrir um arquivo seqüencial para leitura, chamado VBJUNK.TXT, na pasta atual, escreveríamos:

Open VBJUNK.TXT For Input As #1 Para fechar um arquivo devemos usar o comando Close: Close [#] nº_do_arquivo. O número do arquivo pode ser determinado com a função FreeFile, que retorna o número do próximo arquivo livre: nº_do_arquivo=FreeFile. LEITURA DE ARQUIVOS SEQÜENCIAIS O comando Open por si mesmo somente abre o arquivo, sem ler o conteúdo. Para ler arquivos seqüenciais devemos usar o comando Input$, cuja sintaxe é mostrada a seguir. Input$ (tamanho,[#]nº_do_arquivo), onde: tamanho: tamanho, em bytes, do arquivo a ser lido; nº_do_arquivo: número usado no comando Open. Para determinar o tamanho de um arquivo podemos usar a função LOF, que significa Length of File, ou Tamanho do Arquivo. Exemplo: Input$ (LOF(1), #1)

line input � lê uma linha do arquivo

input #número,var1, var2 � lê um conjunto de campos por vez GRAVAÇÃO DE ARQUIVOS SEQÜENCIAIS

Page 30: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 30

Para gravar arquivos sequenciais estes devem, antes, ter sido abertos para saída (output). O comando mais comum para gravação é Print #. Print # nº_do_arquivo, Lista, onde o parâmetro Lista contém os dados a serem gravados. Exemplo: Print # 1, txtTexto.text. Revisão - Comandos básicos: Open <nome arq> for <modo> as #número <modo> � input, output, append line input � lê uma linha do arquivo input #número,var1, var2 � lê um conjunto de campos por vez eof � verifica fim de arquivo close � fecha o arquivo do until eof(1) .. .. loop EXEMPLO:

Page 31: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 31

Para ler um arquivo: cd.ShowOpen On Error GoTo fim monta = cd.FileName enter = Chr$(13) + Chr$(10) Open monta For Input As #1 Do Until EOF(1) Line Input #1, linha$ tudo$ = tudo$ + linha$ + enter Loop Text1.Text = tudo$ Text2.Text = cd.FileName Text3.Text = FileLen(cd.FileName) Text4.Text = FileDateTime(cd.FileName) Close #1 fim: Para gravar um arquivo: cd.ShowSave On Error GoTo fim monta = cd.FileName Open monta For Output As #1 Print #1, Text1.Text Close #1 fim: Para imprimir um arquivo: cd.ShowOpen On Error GoTo fim cd.ShowPrinter monta = cd.FileName enter = Chr$(13) + Chr$(10) Open monta For Input As #1 Do Until EOF(1) Line Input #1, linha$ Printer.Print linha$ Loop Printer.EndDoc Close #1 fim:

Page 32: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 32

FAÇA VOCÊ!!!!

Page 33: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 33

Dinamic Library Link (DLL)

Inclua no seu projeto um módulo: Project ���� Add Module ���� Existing Procure “port.dll” Este arquivo contém:

Enviando e Recebendo dados

Exemplo:

Progress Bar ���� Microsoft Windows Common Controls 5.0 Propriedades (max, min, value)

8ª AULA VISUAL BASIC – PROF. GALE

Public Declare Sub OutPort Lib "port" (ByVal porta As Integer, ByVal Valor As Byte) Public Declare Function InPort Lib "port" (ByVal porta As Integer) As Byte

Enviar � OutPort &H378, valor

Ler � valor = InPort(&H378)

Page 34: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 34

Faça Você!!!

� Monte todas as seqüências; deixe-as funcionando. Os “options” servem apenas para acionar os leds com a seqüência desejada. Todas as seqüências na tela ficam funcionando sucessivamente até que seja pressionado o botão terminar.

Além de criar o arquivo executável, para que seja possível rodar o programa em outro computador que não possua VB instalado, é necessário criar o "Setup" de instalação. Isso nada mais é que um pacote de arquivos que o VB cria (com base no arquivo executável criado anteriormente) e que inclui todos os arquivos adicionais/DLL's, necessários à execução do programa.

Para criar esse "Setup", acesse: => Iniciar Programas Microsoft Visual Basic 6.0 Microsoft Visual Basic 6.0 Tools Package & Deployment Wizard Esse aplicativo do VB irá pedir que você aponte qual é o arquivo de projeto (*.VBP) e seguirá adiante criando o executável, mesmo que já exista. Daí em diante, basta finalizar a execução do aplicativo.

Page 35: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 35

Comunicação Serial – MSCOMM

Termos e Definições

Exemplo Simples

MSCOMM ���� Microsoft Comm Control 6.0

9ª AULA VISUAL BASIC – PROF. GALE

� CommPort � seta e retorna o número da porta de comunicação � Settings � configura velocidade de transmissão(baud rate), paridade,

bits de dados e Stop bit � PortOpen � configura e retorna o estado atual da porta de

comunicação (abre e fecha a porta) � Input � recebe caracteres do buffer � Output � envia uma string de caracteres para um buffer de

transmissão � Inbuffercount � retorna o número de caracteres que estão esperando

para serem enviados. � InputLen � configura o número de caracteres que o buffer pode ler.

Private Sub Form_Load () Dim Instring As String ' Utilizando a COM1. MSComm1.CommPort = 1 ' 9600 baud, no parity, 8 data, and 1 stop bit. MSComm1.Settings = "9600,N,8,1" MSComm1.InputLen = 0 ' Open the port. MSComm1.PortOpen = True ' Envia um aviso para o modem MSComm1.Output = "ATV1Q0" & Chr$(13) Do DoEvents Buffer$ = Buffer$ & MSComm1.Input Loop Until InStr(Buffer$, "OK" & vbCRLF) ' Fecha a porta serial. MSComm1.PortOpen = False End Sub

Page 36: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 36

Page 37: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 37

Banco de Dados

O Visual Basic disponibiliza meios de se construir aplicativos de bancos de dados de maneira rápida. De modo geral, bancos de dados são conjuntos de tabelas, índices e relações potencializados por algum driver de banco de dados. O VB possibilita a conexão com os seguintes drivers:

• Microsoft Access; • dBase III, IV e 5.0; • FoxPro 2.0, 2.5 e 3.0; • Paradox 3.x, 4.x e 5.x; • ODBC, entre outros.

Os bancos de dados do VB são potencializados pelo Jet Engine, que é o mesmo driver do Access. Alguns termos merecem definição: • DBEngine: é um objeto que representa o Jet Engine da MicroSoft e contém todos os outros objetos

de bancos de dados. • Worspace: é um objeto que define uma seção de trabalho do usuário. Quando um banco de dados

é iniciado, um Workspace default é criado, com senha “” e nome “ Admin”. • DataBase: é o objeto banco de dados por excelência; • TableDef: representa a estrutura de uma tabela, que pode conter vários campos (Fields) e vários

índices (Indexes); • Field: representa um campo dentro de uma tabela. • Index: representa um índice dentro de uma tabela. • QueryDef: representa a estrutura de uma consulta (query) em uma tabela. • RecordSet: representa uma tabela ou parte dela. O Recorset pode ser do tipo Table (Tabela),

Dynaset ou SnapShot (Instantâneo). Dynaset é uma estrutura mais versátil do que uma tabela, podendo ser gerado por uma consulta ou uma declaração SQL. Snapshot é o tipo mais restritivo de tabelas e seus dados não pode ser alterados pelo usuário.

O CONTROLE DE DADOS

A maneira mais fácil de manipular bancos de dados é por meio do Data Control, ou Controle de Dados. Este controle, disponível desde a versão 2.0, abre um banco de dados, conecta-se a uma tabela especificada e mostra o conteúdo dos campos em “controles ligados”. Para usar o Controle de Dados, proceda da seguinte maneira: a) Desenhe o Controle de Dados no formulário; b) Na janela de propriedades, especifique a propriedade DataBaseName. Esta propriedade deve

conter um banco de dados já existente, com todo o caminho; c) Especifique a propriedade RecordSource, que deve corresponder a uma tabela válida do banco de

dados; d) Desenhe uma caixa de texto para cada campo da tabela; e) Defina a propriedade DataSource de cada caixa de texto como sendo Data1 (ou o nome do

Controle de Dados).Da mesma forma, especifique a propriedade DataField de cada caixa de texto como uma campo distinto da tabela.

Resumindo:

10ª AULA VISUAL BASIC – PROF. GALE

Page 38: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 38

Banco de Dados Tabelas Linhas (registros) Colunas (campos) O Controle DATA Databasename: (Banco de Dados) Recordsource: (tabela) � Recordsets (conjunto de registros): são objetos que representam coleções de registros de uma ou mais tabelas. Recordsets são equivalentes as variáveis da programação tradicional. � Nas textbox devemos observar as seguintes propriedades:

• Datasource (enxerga o Banco) • Datafield (nome do campo)

O Controle Data: MoveFirst MoveLast MovePrevious MoveNext Ex: Data1.Recordset.movefirst If Data1.Recordset.EOF then Data1.Recordset.moveLast Endif Método Find: FindFirst FindLast FindNext FindPrevious Ex: Data1.Recorset.FindFirst “ “ Crie uma tabela através do Add-Ins / Visual Data Manager, contendo: Número / Nome / Apelido / Cidade / Estado / Data_Nasc / Profissão / Estado Civil

UMA AGENDA DE ENDEREÇOS

O VB pode ser usado para criar um formulário simples do tipo agenda. Você precisará de um banco de dados com os seguintes campos:

Page 39: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 39

• Nome; • Endereço; • Telefone; • FAX; • E-mail; • Cidade; • Estado; • CEP.

Este banco de dados pode ser criado em Access ou por meio do Data Manager. Denomine este banco de dados de AGENDA.MDB. Será necessário criar apenas uma tabela dentro deste banco de dados, a qual chamaremos de NOMES.

Formulário frmAgenda

� conectar o Controle de Dados ao banco de dados e as caixas de texto ao Controle de Dados: a) Na janela de propriedades de Data1, especifique a propriedade DataBaseName para

AGENDA.MDB, incluindo todo o caminho; b) Especifique a propriedade RecordSource de Data1, que deve corresponder à tabela Nomes; c) Defina a propriedade DataSource de cada caixa de texto como sendo Data1. Da mesma forma,

especifique a propriedade DataField de cada caixa de texto como o campo correspondente Código Descrição Descrição em português 3 Return without GoSub Return sem GoSub 5 Invalid procedure call Chamada inválida de procedimento 6 Overflow Sobrecarga 7 Out of memory Falta de memória 9 Subscript out of range Subescrito fora do intervalo 10 This array is fixed or temporarily locked Este array é fixo ou temporariamente travado 11 Division by zero Divisão por zero 13 Type mismatch Tipo incorreto 14 Out of string space Falta de espaço no string 16 Expression Too Complex Expressão muito complexa 17 Can't perform requested operation Impossível realizar a operação requisitada 18 User interrupt occurred Interrupção do usuário 20 Resume without error Continuar sem erro

Page 40: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 40

Código Descrição Descrição em português 28 Out of stack space Falta de espaço na pilha 35 Sub, Function, or Property not defined Sub, Função ou propriedade não definida 47 Too many DLL application clients Demasiados aplicativos DLL clientes 48 Error in loading DLL Erro no carregamento de DLL 49 Bad DLL calling convention Má convenção de chamada de DLL 51 Internal error Erro interno 52 Bad file name or number Número ou nome de arquivo incorreto 53 File not found Arquivo não encontrado 54 Bad file mode Modo de arquivo incorreto 55 File already open Arquivo jã aberto 57 Device I/O error Erro de dispositivo de entrada/saída 58 File already exists Arquivo já existe 59 Bad record length Tamanho de registro incorreto 61 Disk full Disco cheio 62 Input past end of file Entrada depois do fim do arquivo 63 Bad record number Número de registro incorreto 67 Too many files Arquivos em damasia 68 Device unavailable Dispositivo inacessível 70 Permission denied Permissão nagada 71 Disk not ready Disco não pronto 74 Can't rename with different drive Impossível renomear com drive diferente 75 Path/File access error Erro de acesso a caminho ou arquivo 76 Path not found Caminho não encontrado 91 Object variable or With block variable not

set Variável objeto ou bloco With não definida

92 For loop not initialized Laço For não inicializado 93 Invalid pattern string Padrão de string inválido 94 Invalid use of Null Uso inválido de Null 444 Method not applicable in this context Métod não aplicável neste contexto 452 Invalid ordinal Ordinal inválido 453 Specified DLL function not found Função DLL especificada não encontrada 457 Duplicate Key Chave duplicada 460 Invalid Clipboard format Formato do Clipboard inválido 461 Specified format doesn't match format of

data Formato especificado não casa com formato do dado

480 Can't create AutoRedraw image Impossível criar imagem AutoRedraw 481 Invalid picture Figura inválida 482 Printer error Erro de impressão 483 Printer driver does not support specified

property Driver de impressão não suporta a proprieadade especificada

484 Problem getting printer information from the system. Make sure the printer is set up correctly

Problemas em conseguir informação da impressora do sistema. Certifique-se de que a impressora está configurada corretamente.

485 Invalid picture type Tipo de figura inválida 520 Can't empty Clipboard Impossível esvaziar o Clipboard 521 Can't open Clipboard Impossível abrir o Clipboard

Page 41: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 41

Componente Winsock

O controle Winsock permite a comunicação de uma ou mais estações através dos protocolos TCP/IP ou UDP. Protocolo TCP/IP -> é o protocolo usado na Internet. Como podemos notar, andam sempre em dupla o TCP (Transmission Control Protocol) e o IP (Internet Protocol). O protocolo TCP realiza as seguintes tarefas: Divisão da informação em pequenos pacotes, enviar/receber informações pela rede, verificar/reagrupar informações pela rede. Número IP -> O número IP é na verdade formado por um conjunto de quatro números e permite a identificação de cada computador conectado na Internet. UDP -> User Datagram Protocol. Utilizada um sistema de transmissão sem a verificação se existe uma conexão. É um protocolo lento e que pode perder pacotes de informação. Porta -> A porta é um canal de comunicação e permite que existam várias conexões em uma mesma máquina.

Propriedades e métodos do controle Winsock Principais Propriedades

Propriedade Descrição Localport É a porta que seu computador usará. Máx 4 dígitos (9999). Remoteport É a porta da qual sua máquina recebe dados. Protocol Protocolo a ser usado na transmissão (TCP ou UDP). RemoteHostIP Retorna o endereço IP da uma máquina remota. LocalIP Retorna o endereço IP da máquina local. LocalHostName Retorna o nome da máquina local. BytesReceived Determina a quantidade de dados recebidos (bytes). State Define o estado atual do controle. Definições abaixo:

Definições da propriedade State: Constante Valor Descrição

sckClose 0 Default Closed sckOpen 1 Open sckListening 2 Listening sckConnectionPending 3 Connection Pending sckResolvingHost 4 Resolving Host sckHostResolved 5 Host resolved sckConnecting 6 Connecting sckConnected 7 Connected sckClosing 8 Peer is closing the connection. sckError 9 Error

Principais métodos e eventos do controle winsock:

Método/Evento Descrição Accept Aceita uma conexão TCP. Connect Solicita uma conexão TCP. Ocorre quando há uma conexão com outro computador. Close Fecha uma conexão TCP.

DataArrival Onde você coloca o código fonte que você deseja executar quando a informação chegar pela portal local.

GetData Efetua a recepção de dados Listen Espera por uma conexão TCP. SendData Envia dados. SendProgress Indica que você quer controlar a conexão enquanto ela estiver enviando os dados.

SendComplete Indica o que você quer que aconteça depois que a transferência foi terminada. Ex. Exibir uma mensagem.

ConnectionRequest Solicita uma conexão. Error Ocorreu um erro.

11ª AULA VISUAL BASIC – PROF. GALE

Page 42: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 42

Usando o Controle Winsock

Ao rodar sua aplicação, se ela estiver no modo servidor esperando alguma solicitação você deverá definir a propriedade LocaPort e invocar o método Listen para deixar o computador disponível.

winsock1.LocalPort = 1001 winsock1.Listen

Se estiver no modo cliente você vai precisar definir as propriedades RemoteHost ou RemoteHostIP e RemotePort . Depois basta usar o método Connect para solicitar uma conexão.

Winsock1.RemoteHost = "geocities.com/" Winsock1.RemotePort = 80 Winsock1.Connect

Quando você se conecta usando Connect é executado o evento ConnectionRequest do controle Winsock o qual possui o parâmetro requestID. Este parâmetro serve para identificar a conexão de forma única.

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) If Winsock1.State <> sckClosed Then Winsock1.Close Winsock1.Accept requestID End Sub

Após a conexão ter sido estabelecida podemos enviar e receber dados, para enviar dados usamos o método SendData :

Winsock1.SendData "dados a serem enviados"

Para receber os dados devemos utilizar o método GetData tendo como parâmetro o nome da variável que irá receber os dados. Quando os dados sao recebidos eles são colocados no buffer de entrada do controle Winsock e o evento DataArrival é disparado, assim devemos usar o método GetData neste evento:

Private Winsock1_DataArrival() Dim variavel winsock1.GetData variavel ... ... End Sub

Page 43: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 43

SQL

O nome SQL significa “Structure Query Language” – Linguagem estruturada de pesquisa. É uma linguagem estruturada para manipulação de dados. É padronizada para os bancos de dados relacionais, mas cada gerenciador pode assumir uma extensão própria dessa linguagem.

Vantagens e Desvantagens da linguagem SQL:

• Independência de fabricante: é oferecido a todos os sistemas gerenciadores de banco de dados • Portabilidade entre computadores: pode ser usada em um computador pessoal, passando a uma

estação de trabalho, até um computador de grande porte. • Inglês estruturado de alto nível: é formada por um conjunto bem simples de sentenças em inglês • Consulta interativa: A SQL provê um acesso rápido aos dados, fornecendo respostas ao usuário, a

questões complexas • Definição dinâmica dos dados: pode-se alterar, expandir ou incluir, as estruturas dos dados

armazenados Desvantagem:

• Como é feita uma padronização, ocorre assim uma inibição da criatividade, pois quem desenvolve aplicações fica preso a soluções padronizadas.

Criação e Distribuição de Tabelas:

CREATE TABLE

Segue a seguinte forma:

Create table <tabela>

(<descrição das colunas>);

(<descrição das chaves>);

onde:

<tabela>: é o nome da nova tabela a ser criada

<descrição das colunas> : é uma lista de colunas (campos) e seus respectivos tipos de dados. (smallint, char, money, varchar, integer, decimal, float, real, date, time, logical)

<descrição das chaves> : é a lista de colunas que são tratadas como chave estrangeira

Alguns campos podem receber o valor NULL (nulo) e o campo definido como chave primária, além de não poder receber NULL, deve ser um campo UNIQUE (sem repetiçòes – chave primária).

Exemplo: Figura 1

Create Table cliente

(código_cliente smallint not nul unique,

nome_cliente char(20),

endereço char(30),

cidade char(15),

CEP char(8),

UF char(2),

CGC char(20),

IE char(20) );

Page 44: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 44

Create Table Pedido

(num_pedido int not null unique,

prazo_entrega smallint not null,

código_cliente smallint not null,

código_vendedor smallint not null,

FOREIGN KEY (código_cliente)

REFERENCES CLIENTE) ;

Para eliminar uma tabela criada é utilizado o comando DROP:

Drop table <tabela>;

Extraindo Dados de uma Tabela: Comando SELECT:

Forma:

Select <nome(s) da(s) coluna(s)> from <tabela>;

Exemplo: listar todos os produtos com respectivas descrições, unidades e valores unitários?

(Diagrama 1)

select descrição, unidade, valor_unitário from produto;

(Diagrama 2)

• Selecionando todas as colunas da tabela:

Select *

From <tabela>;

• Selecionando somente alguns registros da tabela:

Select <nome(s) da(s) coluna(s)>

From <tabela>

Where <restrições>;

Onde: where <nome da coluna> <operador> <valor>

OBS1: quando a coluna é do tipo caractere, o <valor> deve estar entre apóstrofes

OBS2: Em SQL existe diferenciação entre maiúscula e minúscula

Exemplo: Listar o num_pedido, o código_produto e a quantidade dos itens do pedido com a quantidade igual a

Page 45: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 45

35.

Select num_pedido, código_produto, quantidade

From item_pedido

Where quantidade = 35

Exemplo2: Quais os clientes moram em Niterói?

Operadores Lógicos:

• And • Or • Not

Exemplo: listar os produtos que tenham unidade igual a ‘M’ e valor unitário igual a R$ 1,05

Select descricão_produto

From produto

Where unidade = ‘M’ and val_unit = 1.05;

Exemplo: Liste os clientes e seus respectivos endereços, que moram em ‘São Paulo’ou estejam na faixa de CEP entre ‘30077000’ e ‘30079000’.

Select nome_cliente, endereço

From cliente

Where (CEP >= ‘30077000’ AND CEP <= ‘30079000’)

OR cidade = ‘São Paulo’

Obs: A utilização de parênteses é fundamental para a construção correta da frase, pois sem eles as consultas podem ser analisadas de forma errada, devido a prioridade do operador AND ser maior que a prioridade do operador OR.

Exemplo: Mostrar todos os pedidos que não tenham prazo de entrega igual a 15 dias

Select num_pedido

From pedido

Where NOT (prazo_entrega = 15);

• Operadores Between e NOT Between

- where <nome da coluna> BETWEEN <valor1> AND <valor2> - where <nome da coluna> NOT BETWEEN <valor1> AND <valor2>

Este operador propicia a pesquisa por uma determinada coluna e que esteja dentro de uma faixa de valores, sem a necessidade dos operadores >=, <= e AND. Tanto o valor1 quanto o valor2 tem que ser do mesmo tipo de dado da coluna.

Exemplo: Listar o código e a descrição dos produtos que tenham o valor unitário na faixa de R$ 0,32 até R$ 2,00.

Page 46: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 46

Select codigo_produto, descricão

From produto

Where valor between 0.32 and 2.00;

• Operadores LIKE e NOT LIKE

- Where <nome da coluna> LIKE <valor>;

Os operadores LIKE e NOT LIKE só trabalham sobre colunas que sejam do tipo CHAR. Eles têm praticamente o mesmo funcionamento que os operadores = e <>, porém o poder desses operadores está na utilização dos símbolos (%) e ( _ ) que podem fazer o papel de coringa:

� % - substitui uma palavra � _ - substitui um caractere

Ex: ‘Lápis %’ pode enxergar os seguintes registros:

� Lápis Preto � Lápis Cera � Lápis Borracha

Exemplo: Listar os produtos que tenham a sua unidade começando por K:

Select codigo, descrição

From produto

Where unidade LIKE ‘K_’;

Exemplo2: Listar os vendedores que não começam por ‘Jo’

Select codigo, nome_vendedor

From vendedor

Where nome_vendedor NOT LIKE ‘Jo%’;

• Operadores IN e NOT IN

- Where <nome da coluna> IN <valores>; - Where <nome da coluna> NOT IN <valores>;

Estes operadores pesquisam registros que estão ou não contidos no conjunto de <valores> fornecido.

Exemplo: Listar os vendedores que são da faixa de comissão A e B

Select nome_vendedor

From vendedor

Where faixa_comissão IN (‘A’, ‘B’);

• Operadores IS NULL e IS NOT NULL - Where <nome da coluna> IS NULL;

Page 47: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 47

- Where <nome da coluna> IS NOT NULL;

A utilização do valor nulo (NULL) é muito problemática, pois cada implementação da linguagem pode adotar qualquer representação para o valor nulo.

Exemplo: mostrar os clientes que não tenham inscrição estadual

Select *

From cliente

Where IE IS NULL;

• Ordenando os dados Selecionados

Quando se realiza uma seleção, os dados recuperados não estão ordenados.

A SQL prevê a cláusula ORDER BY para realizar uma ordenação dos dados selecionados.

Forma:

Select < nome da (s) coluna(s)>

From <tabela>

<where < condição(ões)> >

order by <nome da(s) coluna(s)> ASC

ou

order by <número da(s) coluna(s)> DESC

Obs: o default é ASC

Exemplo: Mostrar em ordem alfabética a lista de vendedores e seus respectivos salários fixos

Select nome_vendedor, salário_fixo

From vendedor

Order by nome_vendedor;

Exemplo2: listar os nomes, cidades e estados de todos os clientes, ordenados por estado e cidade de forma descendente.

Select nome_cliente, cidade, UF

From cliente

Order by UF DESC, cidade DESC;

Exemplo3: mostrar a descrição e o valor unitário de todos os produtos que tenham a unidade ‘KG’, em ordem de valor unitário ascendente.

Select descrição, val_unit

From produto

Where unidade = ‘KG’

Page 48: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 48

Order by val_unit ASC;

• Realizando Cálculos com informação Selecionada

Com a SQL pode-se criar um campo que não pertença à tabela original, e que seja fruto do cálculo sobre alguns campos da tabela.

Exemplo: Mostrar o novo salário fixo dos vendedores, de faixa de comissão ‘C’, calculado com base no reajuste de 75% acrescido de R$ 120,00 de bonificação. Ordenar pelo nome do vendedor.

Select nome_vendedor,

Novo_salário = (salário_fixo * 1.75) + 120

From vendedor

Where faixa_comissão = ‘C’

Order by nome_vendedor;

• Utilizando funções sobre conjuntos

• Buscando máximos e mínimos (MAX, MIN)

Exemplo: Mostrar o menor e o maior salário de vendedor.

Select MIN(salário_fixo), MAX (salário_fixo)

From vendedor;

• Totalizando colunas (SUM)

Exemplo: Mostrar a quantidade total pedida para o produto ‘VINHO’ de código ‘78’

Select SUM(quantidade),

From pedido

Where código = ‘78’;

• Calculando Médias: (AVG)

Exemplo: Qual a média dos salários fixos dos vendedores?

Select AVG(salário_fixo),

From vendedor;

Page 49: 343o de Computadores IV.doc) -  · PDF filevisuais, tais como Delphi, Visual C, ... - CheckBox – Pode assumir valores falso ou verdadeiro. ... - DBGrid – Exibe e

Programação de Computadores IV – Prof. Gale

Centro Universitário Salesiano de Campinas 49

• Contando os Registros (COUNT)

Exemplo: Quantos vendedores ganham acima de R$ 2.500,00 de salário fixo?

Select COUNT (*),

From vendedor

Where salario_fixo > 2500;

• Utilizando a cláusula DISTINCT

Normalmente, vários registros dentro de uma tabela podem conter os mesmos valores, com exceção da chave primária. Com isso muitas consultas podem trazer informações erradas.

Exemplo: quais as unidades de produtos, diferentes, na tabela produto?

Select DISTINCT unidade,

From produto;

• Agrupando informações selecionadas (GROUP BY)

Utilizando a cláusula GROUP BY, é possível organizar a seleção de dados em grupos determinados.

• Forma: Select <nome da(s) coluna(s)>

From <tabela>

<where condição(ões)>

group by <nome da(s) coluna(s)>;

order by <nome da(s) coluna(s)>;

Exemplo: Listar o número de produtos que cada pedido contém.

Select num_pedido, total_produtos = COUNT (*)

From item_pedido

Group by num_pedido