Vejam um programa Xharbour com Mysql
Moderador: Moderadores
Amigo Rochinha,
Refiz todos os passos... coloquei tudo EXATAMENTE como vc mencionou, mas ainda assim continua dando a mesma mensagem de erro no último passo... eu não sei mais o que fazer... preciso muito acertar esse negócio, pois tenho um cliente de médio porte e quero dar mais segurança a ele...
Continuo aguardando ajuda...
Janio
Refiz todos os passos... coloquei tudo EXATAMENTE como vc mencionou, mas ainda assim continua dando a mesma mensagem de erro no último passo... eu não sei mais o que fazer... preciso muito acertar esse negócio, pois tenho um cliente de médio porte e quero dar mais segurança a ele...
Continuo aguardando ajuda...
Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Voce acha que um cara entendido no SQL estaria por aqui, apesar do conhecimento poderoso contido neste forum, eles são como os Deuses do Olimpo, lindos, imortais, intocaveis e onipotentes.
Nós somos serem poderosos, mas ainda assim somos mortais e humanos.
Em suma somos heróis aventureiros, bandeirantes, desbravadores destemidos, cientistas sem causa a verdadeira pedra no sapato dos outros, amados por poucos e odiados por muitos.
Mas vamos lá:
1-) Pra que serve o ODBC?
O driver ODBC serve para fazer a ponte entre o seu aplicativo e a base de dados, sem ele voce não acessa as tabelas se o RDD suprido pelo seu aplicativo não os abre nativamente.
Com um driver ODBC adequado voce poderá acessar a base e obter o resultado de suas tabelas. Inclusive podendo acessar tabelas .DBF via ODBC, mas dependendo da ocasião não se obtem muito desempenho.
Ao usar um driver ODBC voce presisa ter linkado ao seu programa funções especiais preparadas para o driver.
2-) O MySql front é útil em que?
Esta ferramenta será util para criação dos bancos de dados, tabelas, indices, campos, etc. Assim como o DBU, DBE, WinDBU, dBase e Fox.
O gerenciamento ficará mais profissional do que o nosso método caótico de desenhar tabelas pelo HD em vários diretórios com grande possibilidade de esquecimento dos mesmos.
3-) No caso, pra quem usa o sistema em rede, esse procedimento postado aqui é somente para ser feito no SERVIDOR?
Sim. este método será aplicado uma unica vez, não sendo necessário faze-lo todo dia ou em todas as maquinas.
Os terminais precisarão apenas saber qual o IP do servidor e o resto fica por conta do Mediator.
Se voce pretende fazer isto em somente uma maquina, a mesma precisa ter os requisitos do servidor, ser no minimo da familia NT/200?/XP.
4-) Os comandos SELECT, INDEX, DBSETORDER(),...,..., continuam funcionando do mesmo jeito?
Acho que pelo menos somente os comandos que influem em arquivos e tabelas terão uma vida de modificações.
O RDD cliente linkado ao seu aplicativo dará suporte a novas funções especificas para pesquisa e manutenção das tabelas, ou seja, se voce usar FILE() para encontrar arquivos ele trara a resposta no seu sistema operacional, se HD, mas se usar a função MedFile() ela trara ressultados levantados dentro da base de dados.
O comando INDEX continua o mesmo e para voce verificar a existencia de uma tabela .CDX/.NTX deverá usar a função MedIsIdx().
O comando SELECT continua com sua função, mas leve em consideração não confundir o mesmo com os comandos SQL.
dbSetOrder() e OrdSetFocus() recebem mudanças, um segundo parametro que apenas indicará se a ordem pesquisada fará o trabalho pesado no servidor ou no cliente.
Em suma não será possivel usar dbUseArea() e outros dbFunção() em detrimento aos comandos de arquivos que o mediator possui. Verifique no manual e nos exemplos.
5-) Pra quem usa o índice CDX, o que muda nos PRG´s ??
O Mediator possui varias funções para tratamento destes arquivos inclusive com o tratamento das sub-filtragens como SCOPE, usando MedSetScpe() e MedClrScpe().
6-) A base de dados continua *.DBF e *.CDX?
A base de dados é incorporada as tabelas do MySQL sendo possivel o trabalho de manutenção por elas somente via MySQL-Front ou outro Frontier de gosto.
7-) Quem usa rede mista (Servidor windows 2003 server, estações win98, winXP) terá algum problema?
Não desde que o Mediator esteja instalado no sistema operacional de tecnologia NT/200?/XP de resto nada muda.
Ufa!
@braços :?)
Voce acha que um cara entendido no SQL estaria por aqui, apesar do conhecimento poderoso contido neste forum, eles são como os Deuses do Olimpo, lindos, imortais, intocaveis e onipotentes.
Nós somos serem poderosos, mas ainda assim somos mortais e humanos.
Em suma somos heróis aventureiros, bandeirantes, desbravadores destemidos, cientistas sem causa a verdadeira pedra no sapato dos outros, amados por poucos e odiados por muitos.
Mas vamos lá:
1-) Pra que serve o ODBC?
O driver ODBC serve para fazer a ponte entre o seu aplicativo e a base de dados, sem ele voce não acessa as tabelas se o RDD suprido pelo seu aplicativo não os abre nativamente.
Com um driver ODBC adequado voce poderá acessar a base e obter o resultado de suas tabelas. Inclusive podendo acessar tabelas .DBF via ODBC, mas dependendo da ocasião não se obtem muito desempenho.
Ao usar um driver ODBC voce presisa ter linkado ao seu programa funções especiais preparadas para o driver.
2-) O MySql front é útil em que?
Esta ferramenta será util para criação dos bancos de dados, tabelas, indices, campos, etc. Assim como o DBU, DBE, WinDBU, dBase e Fox.
O gerenciamento ficará mais profissional do que o nosso método caótico de desenhar tabelas pelo HD em vários diretórios com grande possibilidade de esquecimento dos mesmos.
3-) No caso, pra quem usa o sistema em rede, esse procedimento postado aqui é somente para ser feito no SERVIDOR?
Sim. este método será aplicado uma unica vez, não sendo necessário faze-lo todo dia ou em todas as maquinas.
Os terminais precisarão apenas saber qual o IP do servidor e o resto fica por conta do Mediator.
Se voce pretende fazer isto em somente uma maquina, a mesma precisa ter os requisitos do servidor, ser no minimo da familia NT/200?/XP.
4-) Os comandos SELECT, INDEX, DBSETORDER(),...,..., continuam funcionando do mesmo jeito?
Acho que pelo menos somente os comandos que influem em arquivos e tabelas terão uma vida de modificações.
O RDD cliente linkado ao seu aplicativo dará suporte a novas funções especificas para pesquisa e manutenção das tabelas, ou seja, se voce usar FILE() para encontrar arquivos ele trara a resposta no seu sistema operacional, se HD, mas se usar a função MedFile() ela trara ressultados levantados dentro da base de dados.
O comando INDEX continua o mesmo e para voce verificar a existencia de uma tabela .CDX/.NTX deverá usar a função MedIsIdx().
O comando SELECT continua com sua função, mas leve em consideração não confundir o mesmo com os comandos SQL.
dbSetOrder() e OrdSetFocus() recebem mudanças, um segundo parametro que apenas indicará se a ordem pesquisada fará o trabalho pesado no servidor ou no cliente.
Em suma não será possivel usar dbUseArea() e outros dbFunção() em detrimento aos comandos de arquivos que o mediator possui. Verifique no manual e nos exemplos.
5-) Pra quem usa o índice CDX, o que muda nos PRG´s ??
O Mediator possui varias funções para tratamento destes arquivos inclusive com o tratamento das sub-filtragens como SCOPE, usando MedSetScpe() e MedClrScpe().
6-) A base de dados continua *.DBF e *.CDX?
A base de dados é incorporada as tabelas do MySQL sendo possivel o trabalho de manutenção por elas somente via MySQL-Front ou outro Frontier de gosto.
7-) Quem usa rede mista (Servidor windows 2003 server, estações win98, winXP) terá algum problema?
Não desde que o Mediator esteja instalado no sistema operacional de tecnologia NT/200?/XP de resto nada muda.
Ufa!
@braços :?)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
e o motivo é que nesse exato momento, to criando um indice de um arquivo de 2gb e da pau em uma das tags porque o arquivo ta corrompido....
isso mesmo, tem um monte de registro com letras em campos numericos,
/-). em campos data e por ai vai sera que com essa solucao estarei definitivamente livre desses problemas ?
um detalhe o hd esta completamente fragmentado, no mapa do defrag aparece 90% vermelho
isso mesmo, tem um monte de registro com letras em campos numericos,
/-). em campos data e por ai vai sera que com essa solucao estarei definitivamente livre desses problemas ?
um detalhe o hd esta completamente fragmentado, no mapa do defrag aparece 90% vermelho
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Uma coisa que vi neste RDD é a facilidade de migração. Ainda estou tomando um pau pois o manual é muito confuso e com poucos ou nenhum exemplo prático.
Temos que descobrir no braço. Vou tentar ler o manual do George Foreman Cokie para ver se tem mais exemplos.
Em relação ao RDD se voce fizer um .PRG que conecte-se a base de dados que voce criou e com um simples APPEND FROM puxar os dados do antigo .DBF tudo funciona legal.
REQUEST MEDNTX,DBFCDX
RDDSETDEFAULT('MEDCDX')
...
MedLogin(...)
USE tabela NEW SHARED // abre a tabela no MySQL ou MSSQL
APPEND FROM antigo VIA "DBFCDX" // abre a tabela antiga .DBF
No caso de usar o FOR / WHILE para indexar este não existe mais no Mediator, voce terá de usar:
USE teste
MedIdxSQL("estado = 'SP'") // filtra por esta critica
INDEX ON estado TO indice
Quanto a forma de trabalho com o RDD nunca dá certo usando as funções do Clipper/Harbour, ele trabalha melhor com comandos no formato tradicional:
USE ...
SELECT ...
INDEX ON ...
SET FILTER TO ...
SET ORDER TO ...
Quanto ao tamanho dos arquivos eles ficam menores no MySQL.
Estou fazendo um pequeno aplicativo para colocar aqui para testes, verificando e exemplificando o codigo.
@braços :?)
Uma coisa que vi neste RDD é a facilidade de migração. Ainda estou tomando um pau pois o manual é muito confuso e com poucos ou nenhum exemplo prático.
Temos que descobrir no braço. Vou tentar ler o manual do George Foreman Cokie para ver se tem mais exemplos.
Em relação ao RDD se voce fizer um .PRG que conecte-se a base de dados que voce criou e com um simples APPEND FROM puxar os dados do antigo .DBF tudo funciona legal.
REQUEST MEDNTX,DBFCDX
RDDSETDEFAULT('MEDCDX')
...
MedLogin(...)
USE tabela NEW SHARED // abre a tabela no MySQL ou MSSQL
APPEND FROM antigo VIA "DBFCDX" // abre a tabela antiga .DBF
No caso de usar o FOR / WHILE para indexar este não existe mais no Mediator, voce terá de usar:
USE teste
MedIdxSQL("estado = 'SP'") // filtra por esta critica
INDEX ON estado TO indice
Quanto a forma de trabalho com o RDD nunca dá certo usando as funções do Clipper/Harbour, ele trabalha melhor com comandos no formato tradicional:
USE ...
SELECT ...
INDEX ON ...
SET FILTER TO ...
SET ORDER TO ...
Quanto ao tamanho dos arquivos eles ficam menores no MySQL.
Estou fazendo um pequeno aplicativo para colocar aqui para testes, verificando e exemplificando o codigo.
@braços :?)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Bravo Rochinha... Simplesmente perfeito!!rochinha escreveu:Amiguinhos
Passei a noite para criar este tutorial para mim e quero divulga-lo para todos. Ele se baseia no tutorial que o DUDU Apresentou, mas fiz algumas modificações de forma a torna-lo mais interativo, não só explicando mas também apresentando o que fazer, como fazer e com o que fazer.
Requisitos:
MySQL 4.0.20a-nt
MySQL-Front 2.1
MySQL Mediator Server Free
TUTORIAL
1 - Baixe o MySQL 4, não pode ser outra versão, pois o Mediator exige isto, prefira o MySQL em formato não instalável e descompacte-o na pasta MySQL.
1.1 - Abra o Prompt do DOS.
1.2 - Va ate a pasta C:\MYSQL.
1.3 - Execute o arquivo winmysqladmin.exe.
Para instalar o serviço MySQL faça assim:
Digite mysqld-nt -install para re-instala-lo ou digite mysqld-nt -remove para remover o servico do MySQL se estiver instalado.
2 - Baixe o MySQL Front 2.1, que é Free, pois as novas versões são pagas, trial, shareware, etc.
2.1 - Instale o MySQL Front e execute-o e conecte-se na conecção padrão sem modifica-la.
2.2 - Va em Tools/Create Database e crie um database com nome PDV2006
2.3 - Va em Tools/UserManager e coloque:
User - pdvmaster
Hostname - localhost
Password - pdvmaster
2.4 - Clique no botão Add User.
2.5 - Clique na aba Edit User.
2.6 - Clique no botão Refresh.
2.7 - Clique no botão Close.
2.8 - No menu File/Close feche a coneção e conecte-se novamente.
Em Conection to MySQL-Host:
2.9 - Clique em NEW e de o nome PDV2006 para sua conecção
Hostname - localhost
User - pdvmaster
Password - pdvmaster
Database - PDV2006
2.10 - Clique no botão Save.
2.11 - Clique no botão Connect.
2.12 - No menu File/Close feche a coneção e conecte-se novamente escolhendo PDV 2006 e coloque em:
User - pdvmaster
Password - pdvmaster
Database - PDV2006
2.13 - Clique no botão Save.
2.14 - Clique no botão Connect.
3 - Baixe o MySQL ODBC Driver 3.51 e instale-o.
3.1 - Va em Menu Iniciar/Configurações/Painel de Controle/Ferramentas Administrativas/Fontes de Dados (ODBC)
3.2 - Clique na aba System DSN/Fontes de dados de sistema .
3.3 - Clique no Botão Add/Adicionar.
3.4 - Selecione o MySQL ODBC 3.51.
3.5 - Clique em Concluir
Acrescente em:
Data Source Name - PDV2006
Database Name - PDV2006
User - pdvmaster
Password - pdvmaster
3.6 - Clique em Test Data Source e verifique se a resposta foi ...Connected Successfully..., senão refaça os passos novamente.
3.7 - Clique em OK
3.8 - Feche o painel Fontes de Dados (ODBC)
4 - Instale o RDD Mediator Server, procure na sua pasta de instalação pelo arquivo mediator.exe e execute-o.
4.1 - Clique em Start para iniciar o Mediator
4.2 - Clique em options
4.3 - Clique em Add no painel Users
4.4 - Marque a opção RDBMS no Painel users
Coloque em:
User - pdvmaster
Password - pdvmaster
Confirm - pdvmaster
Data Src. - pdv2006
4.5 - Clique em Ok e responda afirmativamente para inclusão do novo usuário e salve as configurações
4.6 - Clique em Save
4.7 - Clique em OK
4.8 - Minimize-o.
Coloque-o como serviço para que quando seu equipamento for iniciado ele comece a trabalhar:
4.9 - Vá na pasta do Mediator e digite medsvc -install.
5 - Faça o teste de conexão.
5.1 - O Mediator Client cria a pasta c:\MedCl, va na subpasta test e execute o programa hrbtest.exe
Username - pdvmaster
Password - pdvmaster
Data Src. - pdv2006
mediator IP - 127.0.0.1
Pronto! Se deu certo o programa exibe a mensagem : Conected to Mediator server...
6 - Compile o run1st.exe para teste.
6.1 - Altere a seguinte linha para:
logRes := MedLogin("","localhost","19C8","pdvmaster","pdvmaster","pdv2006")
6.2 - Compile com bld run1st. As tabelas CLPDB, CLPDB_MEMO, EMP e DEPT serão criadas.
PROBLEMAS OBTIDOS:
Eu já tinha o MySQL 4 instalado, mas quis instalar o MySQL 5, mas o serviço simplesmente não subia, em consequencia o serviço do MySQL 4 também parou de subir.
Instalei e desinstalei as duas versões várias vezes e nada.
Entrei no registro e detonei as chaves LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL e nada.
Então encontrei em meus diretórios o MySQL 3, instalei-o e o serviço subiu, mas o mesmo é incompativel com o Mediator que exige o MySQL 4.
Por consequencia o MySQL 5 também não é compativel com o Mediator.
Como o MySQL 3 subiu, fiz o seguinte:
Desliguei o serviço MySQL 3, descompactei o MySQL 4 em uma pasta temporária e copiei as pastas BIN, DATA e SHARE para o diretório onde instalei o MySQL 3.
Executei o winmysqladmin.exe e pronto. Não mexo mais.
@braços :?)
Segui seu roteiro e realmente funcionou exatamente como descrito. A única diferença é que eu estava acostumado a criar os databases etc e tal na unha mesmo... hehehe. Eu não conhecia o MySQL-Front e para mim ele se revelou uma uma ótima ferramenta.
Concordo com vc qdo diz que falta estas funções para trabalhar com as tabelas em tempo de execução, mas a gente vai se virando como pode...
Na verdade postei aqui só pra dizer que funcionou, dar os parabéns pela sua iniciativa e encorajar os demais a seguirem o passo-a-passo acima.
Valeu...
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Fico analtecido, mas o Dudu merece todo o crédito pois foi ele que plantou a semente, eu dei umas regadinhas e voces estão adubando.
Colhemos o que plantamos e os frutos desta arvore será de grande valia para nós e os outros que vierem a descansar sob sua sombra.
Vou continuar ajudando.
Quanto ao Trazom:
Sim. voce poderá e deverá usar os comandos na forma mais básica, pois as funções do RDD tem particularidades que não são compatíveis em primeiro estágio com as funçòes padrões xBase/Clipper/Harbour.
@braços :?)
Fico analtecido, mas o Dudu merece todo o crédito pois foi ele que plantou a semente, eu dei umas regadinhas e voces estão adubando.
Colhemos o que plantamos e os frutos desta arvore será de grande valia para nós e os outros que vierem a descansar sob sua sombra.
Vou continuar ajudando.
Quanto ao Trazom:
Sim. voce poderá e deverá usar os comandos na forma mais básica, pois as funções do RDD tem particularidades que não são compatíveis em primeiro estágio com as funçòes padrões xBase/Clipper/Harbour.
@braços :?)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Aproveitando Este Espaço Democrático..
- Meus Parabens Pelo Trabalho DUDU.
- Minha Opniao: Utilizei o Acesso Com Esse RDD , realmente ele é muito bom no que quisito compatibilidade mas deixa muito a desejar na questão de Acesso , velocidade.
- Depois que descobri a maneira VIA ADO.NET nao quero saber de outra coisa..
Abraço a Todos
- Meus Parabens Pelo Trabalho DUDU.
- Minha Opniao: Utilizei o Acesso Com Esse RDD , realmente ele é muito bom no que quisito compatibilidade mas deixa muito a desejar na questão de Acesso , velocidade.
- Depois que descobri a maneira VIA ADO.NET nao quero saber de outra coisa..
Abraço a Todos
um pequeno exemplo de Acesso VIA ADO
Código: Selecionar todos
*
*
* programa de Cadastro dos Investidores
* Autor..: Mauricio André Jordão
* Data...: 06/03/2006
*
#include "FiveWin.ch"
#include "Report.ch"
#include "InKey.ch"
#Include "adodb.ch"
//----------------------------------------------------------------//
function cine13()
public oxget
SET 3D LOOK ON
oxget = space(45)
oxget2 = space(45)
DEFINE font xfont10 name 'Courier New' size 0,-8
DEFINE font xfont9 name 'Courier New' size 0,-11
DEFINE FONT XFONT8 NAME "Courier New" size 0,-12 BOLD
DEFINE FONT xfont7 NAME "Courier" size 0,-7 BOLD
DEFINE FONT XFONT6 NAME "Courier New" size 0,-11 BOLD
DEFINE FONT XFONT5 NAME "Arial Black" size 0,-13 BOLD
Define font xfont29 name 'Courier New' size 0,-13 bold
Define font xfont30 name 'Courier New' size 0,-12 bold
Define font xfont31 name 'Courier New' size 0,-11 bold
Adoerr = 0
invest := tadodb():OPEN( ACCESS , "cinema.mdb", "investidores" , "empresa", "", "" ,.t.,@ADOERR)
if !empty(adoerr)
Return(nil)
Endif
Define dialog OD1 TITLE "Cadastro de Investidores" from 5,5 TO 35.8,104.5;
Font ofont1 color f_fore6,f_back6 OF ownd ;
@ 0,0 LISTBOX obox FIELDS invest:empresa, invest:cgc ;
SIZE 395,180 ;
COLSIZES 360 ;
color f_fore7,f_back7 ;
header 'EMPRESA' , "CGC";
font xfont8 ;
of od1
oBOX:bLogicLen = { || INVEST:Count() }
oBOX:bGoTop = { || INVEST:GOTOP() }
oBOX:bGoBottom = { || INVEST:GOBOTTOM() }
oBOX:bSkip = { | nSkip | INVEST:SKIP( nSkip ) }
oBOX:cAlias = "ARRAY"
@ 200, 02 BTNBMP oBtnBmp1 PROMPT "Incluir" OF OD1 ;
FILE "recurso\incluir.bmp" SIZE 55, 23 RIGHT ;
action f7_incluir(obox,"I")
@ 200, 62 BTNBMP oBtnBmp2 PROMPT "Alterar" OF OD1 ;
FILE "recurso\alterar.bmp" SIZE 55, 23 RIGHT ;
action f7_incluir(obox,"A")
@ 200, 124 BTNBMP oBtnBmp3 PROMPT "Excluir" OF OD1 ;
FILE "recurso\excluir.bmp" SIZE 55, 23 RIGHT ;
action f7_exclui(obox)
@ 200, 186 BTNBMP oBtnBmp4 PROMPT "Procurar" OF OD1 ;
FILE "recurso\procura.bmp" SIZE 55, 23 RIGHT;
action f7_proc(obox)
@ 200, 340 BTNBMP oBtnBmp5 PROMPT "Sair" OF OD1 ;
FILE "recurso\saida.bmp" SIZE 45, 23 RIGHT ;
Action od1:end()
Activate Dialog od1 centered
invest:close()
return(nil)
************
***********
static function f7_incluir(Obox,tipo)
***********
************
local cSair :=" "
if tipo = "I"
V_titulo = "Inclusão de Investidores"
V_EMPRESA = space(50)
Else
V_titulo = "Alteração de Investidores"
V_empresa = invest:adjuststr(invest:empresa,50)
end
Define dialog od3 TITLE v_titulo FROM 10,05 TO 19,70 ;
icon oicon font Xfont6 OF Od1 color f_fore9,f_back9
@ 01,02 Say "EMPRESA.......:" of od3 color f_fore9,f_back9
@ 01,08 GET V_empresa pict "@!" of od3 valid !empty(v_empresa)
@ 40,168 BTNBMP oBtn11 PROMPT "Gravar" OF OD3 ;
FILE "recurso\gravar.bmp" SIZE 47, 20 RIGHT ;
Action (cSair:="*",oD3:End())
activate dialog od3 centered
if cSair="*"
if tipo = "I"
invest:append()
invest:replace("empresa",v_empresa)
invest:commit()
else
invest:replace("empresa",v_empresa)
invest:commit()
end
endif
obox:refresh()
return(nil)
************
***********
static function f7_proc(Obox)
***********
************
Define dialog od3 TITLE 'Procurar p/ item' fROM 10,05 TO 17,50 icon oicon font ofont1 OF Od1 color f_fore8,f_back8
@ 0.8,1 get oget45 var oxget PICT '@!' OF od3
@ 30,135 BTNBMP oBtnBmp5 PROMPT "OK" OF OD3 ;
FILE "recurso\next.bmp" SIZE 35, 20 RIGHT ;
Action od3:end()
activate dialog od3 centered
if !empty(oxget)
if oxget # oxget2
invest:gotop()
oxget2 = oxget
Endif
invest:skip(1)
cursorwait()
While(.t.)
if invest:eof()
Msgalert("Nao Tem Ocorrencias","Aviso")
invest:gotop()
exit
Endif
if alltrim(oxget) $ (invest:empresa)
rsp = msgnoyes("Achou -> "+alltrim(invest:empresa),"Continua Procura ?")
if !rsp
exit
Endif
Endif
invest:skip(1)
Enddo
cursorarrow()
Obox:REFRESH()
Endif
Return(nil)
//-----------------------------------------------------------
static function f7_exclui(obox)
if MsgYesNo( "Excluir este Registro ?", "Por Favor, confirme" )
invest:DELETE()
obox :Refresh()
endif
return nil
//--------------------------------------------
para quem gosta ler:
vejam o que achei a respeito
http://www.linhadecodigo.com.br/artigos.asp?id_ac=296
vale a pena
vejam o que achei a respeito
http://www.linhadecodigo.com.br/artigos.asp?id_ac=296
vale a pena
PARA COMEÇAR NESTE SITE TEM UM BOM MATERIAL SOBRE ADO.NET
http://www.w3schools.com/ado/met_rec_open.asp
http://www.connectionstrings.com/
http://www.w3schools.com/ado/met_rec_open.asp
http://www.connectionstrings.com/


