Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Top Connect SQL
Apostila Top Connect SQL
Utilizando
TopConnect
em vrias Plataformas
Windows NT Server , Windows Workstation, Windows 95/98 e SQL Server so marcas registradas da
Microsoft Corporation.
Banco de Dados Oracle a marca registrada da Oracle Corporation.
Banco de Dados Informix a marca registrada da Informix Corporation.
Banco de Dados Sybase a marca registrada da Sybase Corporation.
Banco de Dados UDB a marca registrada da IBM.
AS/400 marca registrada da IBM e Itec.
Este material de efeito didtico/suporte e no pode ser reproduzido sem autorizao.
CopyRight 2000 Microsiga Software S.A.
ndice
1. Introduo no ambiente TopConnect com Banco de Dados
1.1.
Exemplos de plataformas utiliadas
2. Softwares envolvidos no ambiente do curso
3. Caractersticas fsicas
3.1.
Ambiente Desejvel para uma instalao de 25 usurios:
4. Conceitos Bsicos de Windows NT
4.1.
PDC, BDC, Member Server
4.2.
Workstation e Windows 95/98
5. Sistema Operacional Windows NT 4.0 build 1381 no Servidor
5.1.
Service Pack
5.2.
Proteo de Tela no Servidor
5.3.
Configurao do Ambiente de Rede do Servidor
5.4.
Propriedades do Sistema
5.5.
Instalao e desinstalao de Softwares no Servidor
5.6.
Servios
5.7.
Log de Mensagens de Erro do Servidor
5.8.
Utilitrios Server Manager e Task Manager
6. Bancos de dados
6.1.
Conceitos Bsicos
7. MS SQL Server 6.5
7.1.
Introduo
7.2.
Parmetro BINARY ORDER
7.3.
Service Pack
7.4.
DataBases de controle interno do SQL Server
7.5.
Configurao do SQL Server
7.6.
DataBases ( para armazenar os dados do Siga Advanced/AP5 )
7.6.1. Criando o Device para o DataBase
7.6.2. Criando o DataBase de uso do Siga Advanced
7.6.3. Aps criao do banco de dados
7.7.
Login do SQL Server.
7.8.
Problemas do SQL Server
7.9.
Backup/Restore em SQL ( DUMP )
7.10. Utilitrio de Manuteno do Banco de Dados (SQLMAINT)
7.11. Utilitrio de Agendamento de Tarefas (SQL Executive)
3. Caractersticas fsicas
3.1.
- Processador
- Rede
= 512 MB ou mais
= 2 discos SCSI com 9GB de 80mbit/s com dois adaptadores para garantir
acesso simultaneo dos discos. Para base de dados grandes (com mais de
1GB de dados) recomendamos um Disk Array do tipo Raid-5 de 4 Discos
de 9GB com memria de 256 a 512 para cache de leitura.
= 2 processador Pentium III Xeon 500mhz com 512 de cache.
= Adaptador de 100 mbits, utilizar swite(no cascatear Hubs)
4.2.
Service Pack
Verificar a atualizao do Service Pack , que demonstrado na carga do Sistema Operacional
(Quando a rea da tela estiver azul, verifique o texto apresentado), ou execute o programa
Windows NT Diagnostics - Version.
5.2.
5.3.
10
Propriedades do Sistema
Propriedades do Sistema ( Painel de controle/Propriedades do Sistema na pasta
PERFORMANCE), configurao da performance de aplicaes que rodam no prprio servidor.
Por padro, o percentual disponibilizado para estas aplicaes de 0%, j que o servidor deve
ser dedicado.
11
12
Servios
Servios (Painel de controle/Servios), so programas que rodam em background (na
retaguarda). Estes programas podem ser iniciados automaticamente pela carga do sistema
operacional ou manualmente pelo usurio. Eles utilizam memria de CPU e dependendo dos
servios em uso a performance do equipamento pode diminuir. Como exemplo seguem alguns
servios que devem ser utilizados em servidores independentes, ou seja, NO devem
permanecer no mesmo servidor que o TopConnect e do Banco de Dados.
-
13
14
5.9.
15
Conceitos Bsicos
Os conceitos bsicos dos Bancos de Dados relacionais so bem diferenciados dos conhecidos
DBFs. Estes conceitos bsicos so teis principalmente para saber responder eventuais
perguntas que nossos clientes podero efetuar sobre nosso sistema.
SQL quer dizer : Structured Query Language , que foi desenvolvido inicialmente pela IBM
Corporation.
Um banco de dados no trabalha em funo de registros, ou Arquivos como ns estamos
acostumados a ver e fazer em linguagem de programao Clipper. o SQL utiliza a teoria de
conjuntos conhecida por todos, que tem o objetivo de resolver os problemas dos usurios com
comandos simples, chamados de querys ( Requisio e Alterao de dados ), que utilizam
basicamente 4 comandos : SELECT, INSERT, UPDATE, DELETE.
O que nos interessa neste momento , saber que no SQL Server, no Oracle, no SyBase, ou
em qualquer outro banco de dados conhecido, que nestes, obrigatoriamente criamos um
chamado DATABASE, no qual estaro armazenados as Tabelas ( Arquivos ), e estas contero
as Colunas ( Campos ), e os ndices. Os dados armazenados nas tabelas NO so Registros,
e sim Linhas. Os ndices trabalham de forma semelhante ao DBF, e so utilizados com duas
finalidades : a de termos uma chave de acesso extremamente rpida, e de garantirmos uma
chave nica em uma tabela. A partir do momento que indicamos uma chave nica em uma
tabela, o prprio banco de dados passa a garantir que no existir dados duplicados, sem a
necessidade de programao para tal.
Tambm estaro ligados uma tabela especfica os Triggers, e as Foreign Keys ( Chaves
Estrangeiras ). Em cada DataBase tambm estaro armazenadas as Stored Procedures, que
so programas ou funes escritas como qualquer linguagem conhecida ( Clipper, Pascal etc.),
s que no padro ANSI / SQL.
16
Uma Trigger funciona como um gatilho, s que este disparado no a cada campo alterado, e
sim a cada Incluso, Alterao ou Excluso de uma linha da tabela. Os Triggers tambm so
escritos como as Stored Procedures, ou seja, como um programa qualquer, que pode efetuar
qualquer tipo de validao, atualizao em outras tabelas, etc...
Hoje no utilizamos no Siga Advanced nenhuma Trigger. Em alguns casos especficos em
clientes, as mesmas podero ser utilizadas.
Uma Foreign Key ( Chave Estrangeira ) uma ligao entre tabelas que so criadas nas
mesmas. So estas que garantem que nunca o Cliente X ser excludo se o mesmo tiver
movimentos ( Pedidos, Notas , Duplicatas Etc. ), tambm ser garantido que nunca ser
includo um Pedido de Vendas do Cliente Y, se o mesmo no existir. Este tratamento feito
diretamente pelo Banco de Dados, no necessitando qualquer codificao para isto.
O Siga Advanced no trabalha hoje com o conceito de chaves estrangeiras no banco de dados.
O uso de um Banco de Dados SQL se faz necessrio pela segurana dos dados e pela fcil
recuperao dos mesmos por vrios aplicativos como Siga Advanced (TopConnect), Crystal
Reports (ODBC), SigaEIS (BDE), Excel, etc.
Devido ao controle exercido sobre os dados a performance do banco acaba sendo prejudicada.
Nos prximos tpicos estaremos demonstrando como melhorar e otimizar o SGDB (Sistema
Gerenciador de Banco de Dados) para o melhor aproveitamento do sistema.
Nas empresas maiores normalmente se encontram o chamado DBA (Data Base Administrator),
que tem a funo de administrar o banco de dados, quanto a otimizao, configurao,
backups e segurana. Sabemos que na prtica isto s funciona para empresas grandes,
portanto temos que saber o mnimo possvel de cada banco de dados para podermos identificar
problemas e solues que se adequam melhor instalao do cliente.
17
Introduo
O SQL Server hoje uma excelente opo para nossos clientes tanto no que se refere
performance, quanto confiabilidade. Originou-se da desassociao da Microsoft e a SyBase,
que at ento trabalhavam em cima de um nico produto ( o SyBase ).
No SQL Server 6.5 no existe Lock de registros e sim de pginas. O banco somente trabalha
em suas requisies de dados com pginas de 2K, que dependendo da banda/tamanho das
linhas, uma pgina poder conter diversas linhas, sendo que, na necessidade de Lock de uma
linha, o SQL Server ir dar um Lock em toda a pgina que se encontra esta linha.
No SQL Server, assim como nos outros bancos de dados disponveis no mercado, existem uma
srie de parmetros e dicas que interferem diretamente em seu desempenho, podendo at ser
a diferena entre o fracasso e o sucesso da implantao.
A seguir veremos estes parmetros e opes, que devem ser tomadas como base para
implantaes, apesar de que para cada cliente, dependendo do hardware disponvel, haver
um tipo de configurao mais aconselhada.
7.2.
18
19
Service Pack
O service pack uma atualizao de DLLs e Executveis fornecida pela prpria Microsoft.
Sem esta atualizao, no podemos garantir o bom funcionamento e nem a avaliao de
problemas. Para verificar se o SQL Server foi atualizado com o Service Pack , voc dever
verificar a verso da DLL do driver ODBC no painel de controle/ODBC/ODBC Drivers
(name=SQL Server, version = 2.65.0252, company = Microsoft Corporation, file =
SQLSRV32.DLL, 16/6/97 )
20
21
Name
minimum
affinity mask
allow updates
backup buffer size
backup threads
cursor threshold
database size
default language
default sortorder id
fill factor
free buffers
hash buckets
language in cache
LE threshold maximum
LE threshold minimum
LE threshold percent
Locks
LogLRU buffers
logwrite sleep (ms)
max async IO
max lazywrite IO
max text repl size
max worker threads
media retention
memory
nested triggers
network packet size
open databases
open objects
priority boost
procedure cache
Protection cache size
RA cache hit limit
RA cache miss limit
RA delay
RA pre-fetches
RA slots per thread
RA worker threads
recovery flags
recovery interval
remote access
remote conn timeout
remote login timeout
remote proc trans
remote query timeout
remote sites
resource timeout
set working set size
show advanced options
0
0
1
0
-1
2
0
0
0
20
4999
3
2
2
1
5000
0
-1
1
1
0
10
0
2800
0
512
5
100
0
1
1
1
1
0
1
1
0
0
1
0
-1
0
0
0
0
5
0
0
maximum
config_value
run_value
2147483647
1
32
32
2147483647
10000
9999
255
100
524288
265003
100
500000
500000
100
2147483647
2147483647
500
1024
1024
2147483647
1024
365
1048576
1
32767
32767
2147483647
1
99
8192
255
255
500
1000
255
255
1
32767
1
32767
2147483647
1
2147483647
256
2147483647
1
1
0
0
1
5
-1
2
0
50
0
2048
7993
3
1000
500
0
5000
0
0
8
8
65536
255
0
40960
1
8192
20
5000
0
5
10
4
3
15
40
255
3
0
10
1
10
5
0
0
10
10
0
1
0
0
1
5
-1
2
0
50
0
2048
7993
3
1000
500
0
5000
0
0
8
8
65536
255
0
40960
1
8192
20
5000
0
5
10
4
3
15
40
2
3
0
10
1
10
5
0
0
10
10
0
1
*
*
*
*
*
22
-1
64
1
0
50
5
0
64
511
2147483647
2044
1000
32767
4095
1
64
10000
0
100
100
0
1
64
0
0
100
100
0
(*) Estes parmetros so os de maior importncia na configurao do SGDB. A seguir teremos uma
explicao de cada um deles. O valor de cada parmetro deve ser alterado de acordo com a
configurao fsica do equipamento do cliente. Em caso de dvida no altere o parmetro, por que
voc correr o risco do banco no ser iniciado novamente.
7.5.1.
DEFAULT SORTORDER ID
Name
default sortorder id
minimum
maximum
255
config_value run_value
50
50
Este parmetro no pode ser alterado. Seu valor foi configurado em tempo de instalao, como
demonstrado em tpico anterior. Ele pode ser utilizado apenas para conferir a instalao do cliente.
7.5.2.
Name
minimum
maximum
config_value run_value
10
1024
255
255
Estes parmetros servem para determinar o nmero de reas de trabalhos disponveis para uso
simultneo.
O valor sugerido 255 para ambos casos.
7.5.3.
MEMORY
Name
minimum
memory
2800
maximum
1048576
config_value run_value
40960
40960
Este parmetro define, quantas unidade de 2K de memria estaro disponveis para uso do SQL
Server. Este valor depende exclusivamente da quantidade de memria fsica disponvel, com o
servio do SQL Server parado. Esta informao dever ser obtida atravs do utilitrio Task
Manager pasta Performance.
7.5.4.
Name
minimum
512
maximum
32767
config_value run_value
8192
8192
Este parmetro define, o tamanho do pacote de transmisso / recepo que trafega pela rede.
7.5.5.
OPEN OBJECTS
Name
minimum
maximum
config_value run_value
open objects
100
2147483647
5000
5000
Define o nmero de objetos do database que podem ser abertos ao mesmo tempo, este parmetro
varia de acordo o nmero de estaes. Quando este valor for sobrecarregado, ser logado uma
mensagem no EventView do NT.
23
PROCEDURE CACHE
Name
minimum
maximum
config_value run_value
procedure cache
99
Este parmetro define o percentual que ser reservado da memria para cache de Stored
Procedures, o valor Default 30, mas recomendo diminuir este valor para 5%.
7.5.7.
USER CONNECTIONS
Name
user connections
minimum
maximum
32767
config_value run_value
100
100
Define o nmero de sesses disponveis para conexo com o banco. O SQL Server se utiliza de
cinco conexes, o TopConnect utiliza duas conexes e cada estao do Siga Advanced utiliza mais
duas conexes. Ajuste o nmero de conexes com uma margem de tolerncia de + - 20%.
7.5.8.
Name
minimum
maximum
config_value run_value
24
7.6.
25
7.6.2.
OBS: Os bancos de dados utilizam o banco de LOG para controle de alteraes, incluses
e excluses, que podem estar em transao ou no. Tudo isto serve para controle de
ROLLBACK do banco de dados, quando o Siga Advanced estiver com o parmetro
MV_TTS = "S". Este LOG serve tambm para empresas que utilizam backup por
Transaes, normalmente utilizado em grandes plataformas em casos que o backup geral
no possvel.
Na verso 7.0 do SQL Server foi resolvido o problema do lock de pgina, passando agora
para o lock de linha onde poderemos utilizar o controle de transao normalmente sem
problemas de dead lock (Erro gerado pelo banco na concorrncia de recursos de lock de
mesma pgina).
26
7.7.
27
OBS: O erro causado pelo SQL Server percebido na recuperao dos dados,
especificamente no retorno de um registro selecionado por um Select que retorna uma linha
especfica e que utiliza o ndice(dbseek). Percebido pelo usurio que aps a incluso de um
dado qualquer, na prxima verificao ele no existe mais. Mas o dado est fisicamente
gravado, somente no retornado quando selecionado diretamente.
28
29
OBS : No recomendado a execuo desta ferramenta para bancos maiores que 399 Mb
(observao da Microsoft).
7.11.
30
Introduo
O SQL Server hoje uma excelente opo para nossos clientes tanto no que se refere
performance, quanto confiabilidade. Originou-se da desassociao da Microsoft e a SyBase,
que at ento trabalhavam em cima de um nico produto ( o SyBase ).
A verso mais atualizada do SQL Server a 7.0, e esta est homologada pela Microsiga.
No SQL Server 7.0 esta substituindo o a verso 6.5, e esta muito mais poderoso no controle de
base de dados grandes, e a Microsoft aposta na capacidade de seu produto para competir com
com outros Bancos de dados.
Uma das melhorias primordiais do SQL 7.0 foi o controle de lock de registros, que na verso
anterior gerou vrios problemas no controle transacional.
No SQL Server, assim como nos outros bancos de dados disponveis no mercado, existem uma
srie de parmetros e dicas que interferem diretamente em seu desempenho, podendo at ser
a diferena entre o fracasso e o sucesso da implantao.
A seguir veremos estes parmetros e opes, que devem ser tomadas como base para
implantaes, apesar de que para cada cliente, dependendo do hardware disponvel, haver
um tipo de configurao mais aconselhada.
8.2.
31
32
Service Pack
O service pack 1 no uma necessidade exigida para utilizar com o SigaAdvanced/Ap5. Para
verificar se o SQL Server foi atualizado com o Service Pack 1, voc dever verificar a verso da
DLL do driver ODBC no painel de controle/ODBC/ODBC Drivers (name=SQL Server, version =
3.70.0623, company = Microsoft Corporation, file = SQLSRV32.DLL, 11/5/98 este verso a
original a verso mais nova esta com data e verso superior a esta)
33
8.4.
34
8.5.
35
8.5.2.
OBS: Os bancos de dados utilizam o banco de LOG para controle de alteraes, incluses
e excluses, que podem estar em transao ou no. Tudo isto serve para controle de
ROLLBACK do banco de dados, quando o Siga Advanced estiver com o parmetro
MV_TTS = "S". Este LOG serve tambm para empresas que utilizam backup por
Transaes, normalmente utilizado em grandes plataformas em casos que o backup geral
no possvel.
Na verso 7.0 do SQL Server foi resolvido o problema do lock de pgina, passando agora
para o lock de linha onde poderemos utilizar o controle de transao normalmente sem
problemas de dead lock (Erro gerado pelo banco na concorrncia de recursos de lock de
mesma pgina).
36
37
8.6.
38
8.7.
39
8.9.
40
Introduo bsica
Neste tpico relataremos apenas as diferenas na configurao do Oracle em relao ao SQL
Server.
9.2.
Configurao do Oracle
Na configurao do Oracle existem 250 parmetros possveis de serem alterados, porm
falaremos apenas daqueles que interessam na interao do SIGA Advanced com o banco.
O valor que aparece ao lado do parmetro serve apenas como exemplo, uma vez que todo o
conjunto (memria + cpu + disco) deve ser levado em conta para se obter estes valores.
(Estes parmetros so encontrados no arquivo INITORCL.ORA no diretrio OraNT\Database)
db_file_multiblock_read_count = 32
Quantidade de blocos de dados lidos pelo Oracle em cada acesso ao disco.
db_block_buffers = 20000
Quantidade de blocos de dados mantidos em memria para fins de buffers.
shared_pool_size = 32768000
rea de memria compartilhada para diversos fins (compilao de sql, execuo de triggers,
procedures, packages, cache de comandos compilados, etc). Valor em bytes.
shared_pool_reserved_size = 3276800
rea reservada para grandes alocaes de compilao de comandos. Valor em bytes.
log_checkpoint_interval = 100000
Intervalo de checkpoint para a gravao dos arquivos de log. Valor em milisegundos.
open_cursors = 200
Nmero mximo de cursores abertos por sesso.
processes = 200
Nmero mximo de processos simultneos.
dml_locks = 200
Nmero mximo de locks em uma nica transao.
log_buffer = 163840
Buffer para os arquivos de log.
sort_area_size = 8192000
rea de sort para execuo de comandos do tipo order by e criao de ndices, clusters, etc.
Valor em bytes.
transactions = 60
Nmero mximo de transaes simultneas.
transactions_per_rollback_segment = 6
Nmero mximo de transaes por segmento de rollback.
41
unlimited_rollback_segments = TRUE
Habilita a criao de segmentos com ilimitados next's.
v733_plans_enabled = TRUE (Somente para Oracle 7.3.4)
Parmetro no documentado. Ativa vrias features de perfomance introduzidas na verso 7.3.3
ou maior.
9.3.
Criao de DataBases
9.3.1.
42
Criao do usurio
Aqui temos uma grande diferena do Oracle para o SQL Server. Quando voc cria um
usurio, voc deve associar a ele um tablespace de dados e um de dados
temporrios(opcional), e o seu acesso ser limitado a esta rea.
muito importante a parte de atribuio de direitos ao usurio, pois dela dependem vrios
comandos do Top Connect. Na pasta Roles/Privileges, os direitos que devem ser
concedidos ao usurio SIGA so: CONNECT, DBA e RESOURCE. As demais opes no
so necessrias para o usurio SIGA.
43
44
Introduo
O Informix hoje um excelente SGDB para nossos clientes tanto no que se refere
performance, quanto confiabilidade. Atualmente estamos trabalhando para colocar o informix
em cliente que requerem maior performance com base de dados grandes.
No informix existe uma srie de parmetros e dicas que interferem diretamente em seu
desempenho, podendo at ser a diferena entre o fracasso e o sucesso da implantao.
A seguir veremos estes parmetros e opes, que devem ser tomadas como base para
implantaes, apesar de que para cada cliente, dependendo do hardware disponvel, haver
um tipo de configurao mais aconselhada.
10.2.
Configurao
A verso Homologada atualmente a 7.31 TC5 para Windows NT com Service Pack 5 ou
maior, ateno para o Service pack instalado no Sistema Operacional NT, por que esta verso
dependente o Service Pack, no caso de necessidade de atualizao de Service Pack,
acoselhamos verificar a verso com a informix.
Na instalao voc necessita criar um usurio com o nome de informix com previlgios de
Administrador e Domain Administrator. (o instalador far isto automticamente)
Sempre deve ser instalado em uma Partio NTFS, nunca em uma partio FAT.
Quando voc for solicitado a informar o tamanho do Table Space (DataBase), se possvel
recomendamos sempre informar o tamanho mximo de 2GB , recomendamos no selecionar a
opo de espelhamento (mirror).
No final da instalao devemos instalar o Client SDK acompanhado do produto, ou fornecido
pela Microsiga, para que sejam feitas as atualizaes de driver ODBC compatveis com o
TopConnect. A verso do ODBC vlida Informix 3.30 e 3.31.
Utilizar no painel de controle a opo System environment/system variables=PATH, inclua o
seguinte caminho: <letra da unidade que instalou o informix>:\informix\bin; < letra da unidade
que instalou o informix >:\informix;
Ex: PATH = %PATH%;C:\INFORMIX\BIN;C:\INFORMIX;
Existe um arquivo chamado ONCONFIG no diretrio: \informix\bin, que dever ser configura de
acordo as especificaoes de hardware do cliente.
10.3.
45
Dbaccess
Utilitrio que contempla a maioria das funes como , conexo ao banco de dados,
sesso para fazer querys diversas, criao do banco de dados, criao de
chunks(Devices de Table Spaces), criao se seguimentos de rollback, etc.
10.4.
46
Introduo
O AS/400 uma plataforma proprietria da IBM, a maioria dos softwares so desenvolvidos
pela prpria IBM, e parceiros como o nosso caso do TopConnect . A verso de topconnect do
AS/400 no depende de um servidor NT o topconnect instalado dentro do prprio AS/400.
Esta plataforma bastante segura , o esquema de trabalho parecido com o antigo
Mainframe, esta plataforma depende de profissionais especilistas e operao, por que
necessitam operar o OS/400.
11.2.
48
49
11.3.
50
Instalao
Antes de iniciar a instalao do TopConnect 2.0, verifique se existe alguma verso anterior do
TopConnect instalada. Em caso positivo e a verso for TopConnect 1.0, remova-a pela opo
do painel de controle (Adicionar/Remover Programas), e em seguida instale o TopConnect 2.05
Build 3s ou superior.
12.2.
Opes de Visualizar
12.2.1. Informaes
51
12.2.3. Utilizao
52
12.3.
53
54
55
Atualizao de Verso
Existem atualizaes do TopConnect que no mudam a verso original, mudam apenas o que
chamamos de construo (build xx), para ajuste ou atualizao de novos DataBases que
estiverem disponveis no mercado. Sempre que houver atualizaes ser disponibilizado no
site ftp://snetnt.com.br/topconn , faa um download do executvel topconnect_2.exe.
12.5.
56
[Topconnect]
DataBase=MSSQL
Alias=TOPSIGA
ConType=TCPIP
Server=172.16.1.15
ou
[TopConnect]
DataBase=ORACLE
Alias=PROTHEUS
ConType=NPIPE
Server=PESQUISA1
As duas configuraes iro funcionar normalmente para a verso SIGA Advanced Windows. A
verso DOS s funcionar com a segunda configurao que utiliza a camada Named Pipe. Por
recomendao utilizem a segunda configurao para utilizar ambas as verses.
Na conexo direta via TCP/IP (primeira opo), quando um estao interrompida por queda
de energia, travamento ou qualquer outro motivo, a conexo pode ficar presa por 2 horas ou
mais; J com NPIPE esta conexo liberada imediatamente ou na pior das hipteses, no
prximo logon do usurio.
13.2.
57
14.2.
58
ORACLE
DB2
AS/400
SYBASE / ANYSYB / ANYWHERE
INFORMIX
Este programa estar apresentando a empresa que est processando e os campos que esto
sendo verificados.
59
OU
TCQUERY cQuery NEW
Else
#ENDIF
60
61
62