INSTALAR MYSQL
www.4shared.com/file/21745996/5d83cd05/Setup_Lite_MYSQL.html
Espero que ajude!!!
[url=http://www.4shared.com/file/21745996/5d83cd05/Setup_Lite_MYSQL.html/url]
Espero que ajude!!!
Deu Certo o meu esquema......
Respondendo aos comentarios.....
Citação:LCSD escreveu:
E PQ ao invés de VC colocar isso em um TXT, VC não coloca isso dentro de um módulo no seu sistema, e VC vai chamando as SUBÂÂ's deste módulo criando as tabelas no seu MySQL???
é muito mais simples e rápido pra fazer...
Muito melhor do que abrir o TXT, jogar pra algum lugar, e este algum lugar rodar e criar a tabela.
Faça isso dentro do VB mesmo!!!
Simples.....
Porque se eu colocar no no módulo, fico restrito ao módulo.....se eu criar uma tabala vou ter q ir no modulo e adicionar no sistema......gerar outro executavel..etc...etc....etc....
Alem disso, a instalação não iria interagir como cliente.
No meu caso o cliente escolhe desde o nome do usario master até o nome do banco.
Da forma que eu fiz..... Posso rodar apenas o script, ou enviar para o cliente o script que ele roda lah....e a tabela eh crida.....normalmente......sem a necessidade de enviar outro executavel para ele......
A utilização de scripts em arquivos txt...eh a melhor forma para vc criar tabelas, bancos enfim...manipular comandos sql de forma pratica.....bastando apenas escrever as instruções no arquivo texto e pedindo para o seu sistema executar.....
Bem........Agora vamos ao que interessa......
Citação:MARCELOHF escreveu:
Entendi...
é cara... o que vc poderia fazer é ao invés de pegar um arquivo .TXT, vc criar um backup do banco, e depois restaurar.
Ou então vc le o arquivo todo através do VB e manda executar.Dim Linha as String
Dim strSQL as String
Open Caminho_do_TXT for Input as #1
While not eof(1)
Line Input #1, Linha
strSQL = strSQL & vbcrlf & Linha
Wend
Close #1
BD.EXECUTE(strSQL)
Citação:GREGO escreveu:
o marcelohf esta com a razão
e tbm pode ser executado assim
que vai fazer a mesma coisa mas uma linha de cada vez
Open caminhotxt For Input Shared As #1
Do While Not EOF(1)
Line Input #1, LinhaSQL
BD.EXECUTE(LinhaSQL)
Loop
close #1
Marcelo..e Grego....Eu até havia pensado em fazer isso mesmo....mas como as instruções passam sempre de uma linha, este procedimento não daria certo.....ou daria mas trabalho......
As instruções sql deveriam ser passadas em blocos. Como o Exemplo abaixo.
#
CREATE TABLE 'abrefechaterminal' (
'idAbertura' int(11) DEFAULT NULL,
'CheckOut' varchar(20) DEFAULT NULL,
'Turno' int(10) NOT NULL,
'AbreData' datetime NOT NULL,
'AbreHora' datetime NOT NULL,
'FechaHora' datetime DEFAULT NULL,
'FechaData' datetime DEFAULT NULL,
'Troco' decimal(19,4) DEFAULT NULL,
'RestoTroco' decimal(19,4) DEFAULT NULL,
'Operador' varchar(20) DEFAULT NULL,
'vlrDinheiro' varchar(20) DEFAULT NULL,
'vlrMoeda' varchar(20) DEFAULT NULL,
'vlrConvenio' varchar(20) DEFAULT NULL,
'vlrCarteira' varchar(20) DEFAULT NULL,
'vlrCartao' varchar(20) DEFAULT NULL,
'vlrCheque' varchar(20) DEFAULT NULL,
'vlrTotGeral' decimal(11,0) DEFAULT NULL,
'Gerente' varchar(20) DEFAULT NULL,
'EntraTotal' decimal(19,4) DEFAULT NULL,
'SaidaTotal' decimal(19,4) DEFAULT NULL,
'Saldo' decimal(19,4) DEFAULT NULL,
'StatusCX' varchar(20) NOT NULL,
'Atualizacao' datetime DEFAULT NULL,
PRIMARY KEY ('Turno','AbreData','AbreHora'),
KEY 'AbreData' ('AbreData'),
KEY 'ind_cod_aberto' ('Turno','StatusCX'),
KEY 'ind_cod_dt_aberto' ('Turno','AbreData','StatusCX'),
KEY 'ind_principal' ('Turno','AbreData','AbreHora')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Sendo assim...eu carregei todo o arquivo para uma variável, no arquivo identifiquei cada comando (ou seja Bloco) com o caracter "#". Com o SPLIT eu quebrei o arquivo em blocos, que foram identificado como caracater "#".
MousePointer = vbHourglass
Dim iArquivo As Integer
Dim sTexto As String
Dim aDados As Variant
lblMsgErr = "Abrindo arquivo de Configuração!!!"
sFile = App.Path & "\CRIATABELAS.TXT"
iArquivo = 1
'ler arquivo texto
On Error GoTo errfile
Open sFile For Input As iArquivo
sTexto = Input(LOF(iArquivo), iArquivo)
Close iArquivo
'---------------------------------------------------
aDados = Split(sTexto, Chr(35))
pb.Min = 0
pb.Max = 100
pb.Value = 0
pb.Visible = True
pb.Enabled = True
ipb = 100 / UBound(aDados)
For I = 1 To UBound(aDados)
aDados(I) = Replace(aDados(I), "bsControl", sBaseMaster)' aqui troco o nome do banco de dados que gerei o script pelo nome do banco que o cliente denominar na instalção.
bd.Execute (aDados(I))
pb.Value = ipb * I
lblMsgErr = "Executando o Comando --->" & Replace(Left(aDados(I), 30), vbCrLf, "")
Next I
If Err.Number = 0 Then
MsgBox "Processo concluido !!!", vbInformation
SaveSetting "BsControl", "Licenca", "Acesso", "True"
bd.CommitTrans
MousePointer = vbDefault
frePrincipal.Visible = False
txtRazao.SetFocus
End If
Além desses outros camandos são executados, tais como :
Cria o usuário da instalção no bd e atribui a ele os privilégios
SQL = "GRANT ALL PRIVILEGES ON *.* TO " & sRootMaster & "@% IDENTIFIED BY '" & sPwdMaster & "';"
bd.Execute (SQL)
Pessoal eh soh isso ae....se tiver um arquivo de script , para todar as instruções dentro do vb, vc sooh precisa fazer isso ae em cima..........
A instalação do meu sistema cria o bd, os usuarios, as tabelas, ( vai instalar o mysql, e rodar o serviço.).
Ao iniciar a instalção o sistema verifica se deverá ser uma Instalação de Servidor ou de Estação.
Caso encontre um usuário <> root o sistema irá oferecer a instalação apenas de Estação, irei implementar a busca de uma tabela especifica, pois pode haver outros sismtemas instalados com o user <> de root.
Caso não encontre nenhum usuário e nem a tabela especifica (este procedimento irá identificar que não houve nenhuma instalação do meu sistema no equipamento, além da verificação no registro do windows)o sistema automanticamente vai permitir primeiramente apenas a instalação do servidor, para posteriormente instalar as estações.
Em um outro estágio irei analizar a rede local, buscando por instalação do meu sistema.