EXECUTAR COMANDO DE TEXTBOX
Falae VBManiacos
Estou mexendo em um script para criar banco, tabelas e campos.
Bom, o que acontece é que o comando estou fazendo em uma textbox da seguinte mandeira,
o conteúdo da textbox é o abaixo... como executo ele ?
Dim Banco As Database
Set Banco = CreateDatabase(app.path & [Ô] este.mdb[Ô], dbLangGeneral)
SQL = [Ô]CREATE TABLE tb_acervo [Ô]
SQL = SQL & [Ô](ano TEXT (50), autor MEMO (0), data_cadastro DATETIME (0), detalhes TEXT (50), edicao TEXT (50), editora TEXT (50), emprestado TEXT (50), exemplar TEXT (50), id_acervo LONG (0), numero TEXT (50), onde TEXT (50), origem TEXT (50), outros MEMO (0), reservado YESNO (2), situacao TEXT (50), tipo TEXT (50), titulo MEMO (0), titulo_original MEMO (0), tombo TEXT (50), volume TEXT (50))[Ô]
Banco.execute SQL
Banco.close
qual o comando, o resto eu me viro...
Att.,
Eliseu
Estou mexendo em um script para criar banco, tabelas e campos.
Bom, o que acontece é que o comando estou fazendo em uma textbox da seguinte mandeira,
o conteúdo da textbox é o abaixo... como executo ele ?
Dim Banco As Database
Set Banco = CreateDatabase(app.path & [Ô] este.mdb[Ô], dbLangGeneral)
SQL = [Ô]CREATE TABLE tb_acervo [Ô]
SQL = SQL & [Ô](ano TEXT (50), autor MEMO (0), data_cadastro DATETIME (0), detalhes TEXT (50), edicao TEXT (50), editora TEXT (50), emprestado TEXT (50), exemplar TEXT (50), id_acervo LONG (0), numero TEXT (50), onde TEXT (50), origem TEXT (50), outros MEMO (0), reservado YESNO (2), situacao TEXT (50), tipo TEXT (50), titulo MEMO (0), titulo_original MEMO (0), tombo TEXT (50), volume TEXT (50))[Ô]
Banco.execute SQL
Banco.close
qual o comando, o resto eu me viro...
Att.,
Eliseu
Você digita isso numa textbox e quer executar isso como script, é isso?
Citação:BINGO!:
Você digita isso numa textbox e quer executar isso como script, é isso?
Isso mesmo, executar como um script para criar o banco, a tabela e os campos.
Att.,
Eliseu
Posso concluir que esteja usando um [Ô]banco de dados[Ô] access, nesse caso a criação do mesmo não é possÃvel com comandos SQL, somente pelo método [Ô]CreateDatabase[Ô]. O que você precisa fazer não é executar os comandos VB, e sim os scripts para criação das tabelas e tudo mais, com exceção do banco em si, todo o resto é feito por SQL, mas para contornar o problema, você pode fazer um [Ô]comando especial[Ô], tipo [Ô]CreateDatabase NomeDoBanco[Ô] e quando interpretar, esse comando acionaria o método [Ô]CreateDatabase[Ô].
Porque não coloca somente a query no textbox?, isso já resolveria.
Marcelo.
Estou analisando um script que exetuca scripts VB em tempo real, mas não consegue interpretar o código.
Bom, pensando na sua resposta, vou fazer um teste aqui:
Usarei assim:
Text1.text = [Ô]CREATE TABLE tb_acervo (ano TEXT (50), autor MEMO (0), data_cadastro DATETIME (0), [Ô] & _
[Ô] detalhes TEXT (50), edicao TEXT (50), editora TEXT (50), emprestado TEXT (50), exemplar TEXT (50), [Ô] & _
[Ô] id_acervo LONG (0), numero TEXT (50), onde TEXT (50), origem TEXT (50), outros MEMO (0), [Ô] & _
[Ô] reservado YESNO (2), situacao TEXT (50), tipo TEXT (50), titulo MEMO (0), titulo_original MEMO (0), [Ô] & _
[Ô] tombo TEXT (50), volume TEXT (50))[Ô]
nomebanco.tex = [Ô]teste.mdb[Ô]
Dim Banco As Database
Set Banco = CreateDatabase(app.path & [Ô]\[Ô]& nomebanco.text, dbLangGeneral)
Banco.execute text1.text
Banco.close
Sendo que o objetivo é junto com o código que monta essa String Sql clonar a estrutura de um banco ACCESS e criar uma cópia limpa.
Na minha necessidade faço isso para não ser necessário enviar o banco.mdb PRONTO. só envio a estrutura via código que o banco é montando na instação do sistema. o que reduz em muito o tamanho do pacote de instalação.
Att.,
Eliseu
Estou analisando um script que exetuca scripts VB em tempo real, mas não consegue interpretar o código.
Bom, pensando na sua resposta, vou fazer um teste aqui:
Usarei assim:
Text1.text = [Ô]CREATE TABLE tb_acervo (ano TEXT (50), autor MEMO (0), data_cadastro DATETIME (0), [Ô] & _
[Ô] detalhes TEXT (50), edicao TEXT (50), editora TEXT (50), emprestado TEXT (50), exemplar TEXT (50), [Ô] & _
[Ô] id_acervo LONG (0), numero TEXT (50), onde TEXT (50), origem TEXT (50), outros MEMO (0), [Ô] & _
[Ô] reservado YESNO (2), situacao TEXT (50), tipo TEXT (50), titulo MEMO (0), titulo_original MEMO (0), [Ô] & _
[Ô] tombo TEXT (50), volume TEXT (50))[Ô]
nomebanco.tex = [Ô]teste.mdb[Ô]
Dim Banco As Database
Set Banco = CreateDatabase(app.path & [Ô]\[Ô]& nomebanco.text, dbLangGeneral)
Banco.execute text1.text
Banco.close
Sendo que o objetivo é junto com o código que monta essa String Sql clonar a estrutura de um banco ACCESS e criar uma cópia limpa.
Na minha necessidade faço isso para não ser necessário enviar o banco.mdb PRONTO. só envio a estrutura via código que o banco é montando na instação do sistema. o que reduz em muito o tamanho do pacote de instalação.
Att.,
Eliseu
CASTELO, eu acho que seria mais viável criar uma arquivo com as instruções para a montagem do banco,
e o seu aplicativo, carregar essas instruções, e montar o banco.
e o seu aplicativo, carregar essas instruções, e montar o banco.
O que você chama de reduzir em muito, 500 kb ... 1 Mb... não sei se vale o trabalho.
Para quem quer testar:
Private Sub Command1_Click()
Dim Banco As Database
Set Banco = CreateDatabase(App.Path & [Ô]\[Ô] & nomebanco.Text, dbLangGeneral)
Banco.Execute Text1.Text
Banco.Close
End Sub
Private Sub Form_Load()
Text1.Text = [Ô]CREATE TABLE tb_acervo (ano TEXT (50), autor MEMO, data_cadastro DATETIME, [Ô] & _
[Ô] detalhes TEXT (50), edicao TEXT (50), editora TEXT (50), emprestado TEXT (50), exemplar TEXT (50), [Ô] & _
[Ô] id_acervo LONG, numero TEXT (50), onde TEXT (50), origem TEXT (50), outros MEMO, [Ô] & _
[Ô] reservado YESNO, situacao TEXT (50), tipo TEXT (50), titulo MEMO, titulo_original MEMO, [Ô] & _
[Ô] tombo TEXT (50), volume TEXT (50))[Ô]
nomebanco.Text = [Ô]teste.mdb[Ô]
End Sub
é só criar um form com 2 textbox, (text1 e nomebanco) e 1 botão de comando.
Seu banco estará criado.
Marcelo, sei que posso estar errando em querer tornar o instalador mais leve, mas penso ser algo prático.
No mais, o objetivo principal seria compartilhar essa possibilidade, como utilidade para os desenvolvedore (ou inutilidade...)
Vou arrumar certinho os códigos em um projeto separado e vou postar para a galera avaliar.
Att.,
Eliseu
Private Sub Command1_Click()
Dim Banco As Database
Set Banco = CreateDatabase(App.Path & [Ô]\[Ô] & nomebanco.Text, dbLangGeneral)
Banco.Execute Text1.Text
Banco.Close
End Sub
Private Sub Form_Load()
Text1.Text = [Ô]CREATE TABLE tb_acervo (ano TEXT (50), autor MEMO, data_cadastro DATETIME, [Ô] & _
[Ô] detalhes TEXT (50), edicao TEXT (50), editora TEXT (50), emprestado TEXT (50), exemplar TEXT (50), [Ô] & _
[Ô] id_acervo LONG, numero TEXT (50), onde TEXT (50), origem TEXT (50), outros MEMO, [Ô] & _
[Ô] reservado YESNO, situacao TEXT (50), tipo TEXT (50), titulo MEMO, titulo_original MEMO, [Ô] & _
[Ô] tombo TEXT (50), volume TEXT (50))[Ô]
nomebanco.Text = [Ô]teste.mdb[Ô]
End Sub
é só criar um form com 2 textbox, (text1 e nomebanco) e 1 botão de comando.
Seu banco estará criado.
Marcelo, sei que posso estar errando em querer tornar o instalador mais leve, mas penso ser algo prático.
No mais, o objetivo principal seria compartilhar essa possibilidade, como utilidade para os desenvolvedore (ou inutilidade...)
Vou arrumar certinho os códigos em um projeto separado e vou postar para a galera avaliar.
Att.,
Eliseu
Olha eu já fiz um aplicativo assim, ou seja ao iniciar o executável ele verificava se o mdb existia,e caso contrário criava o mesmo com todas as tabelas e campos, usei isso durante algum tempo, porém com a evolução dos processadores (acho dificil alguém ainda estar usando um 486) isso passou pra mim a ser desnecessário, pois um instalador de uns 500 megas roda em segundos em um Dual Core que não é lá estas grandes coisas, imagine em um i3, i5 ou i7, seria vapt vupt, então em minha opinião a ideia é legal, mas veja bem se for um banco robusto haja código pra criar o mesmo, sendo que apenas incluir o banco no instalador, você teria a menos 500 kb ou até 1 Mb, o que não afetaria em nada o instalador.
Marcelo,
Tú chegou bem no que tava querendo dizer mas passou batido... a questão de já existir o banco.
Estou me familiarizando com o innosetup e naõ sei se ele tem como verificar a existência ou não do banco. Mas a necessidade seria fazer um instalador mais leve, para ser baixado da internet ou enviado por email, e que me garantisse que não haveria possibilidade de sobscrever o banco de dados se o mesmo já existisse.
No VB verifico a existência do banco ou não... mas no instalador não sei.
Tú chegou bem no que tava querendo dizer mas passou batido... a questão de já existir o banco.
Estou me familiarizando com o innosetup e naõ sei se ele tem como verificar a existência ou não do banco. Mas a necessidade seria fazer um instalador mais leve, para ser baixado da internet ou enviado por email, e que me garantisse que não haveria possibilidade de sobscrever o banco de dados se o mesmo já existisse.
No VB verifico a existência do banco ou não... mas no instalador não sei.
Tópico encerrado , respostas não são mais permitidas