Jump to content
Fivewin Brasil

Problema com Conexao(RESOLVIDO)


fabin01

Recommended Posts

Boa Tarde galera!

é o seguinte queria saber como eu faço para quando o cliente acessar o programa ver se tem as tabelas e o banco existentes e se nao tiver ele cria para o usuario como faço isso?? Vou colocar apos a conexao com o banco?

vcs sabem?

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Editado por - fabin01 on 17/09/2009 16:33:45

Editado por - fabin01 on 30/09/2009 15:18:41

Editado por - fabin01 on 30/09/2009 15:48:52

Editado por - fabin01 on 01/10/2009 10:24:04

Link to comment
Share on other sites

  • Replies 64
  • Created
  • Last Reply

Top Posters In This Topic

Boa Tarde galera!

é o seguinte queria saber como eu faço para quando o cliente acessar o programa ver se tem as tabelas e o banco existentes e se nao tiver ele cria para o usuario como faço isso?? Vou colocar apos a conexao com o banco?

vcs sabem?

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Editado por - fabin01 on 17/09/2009 16:33:45

Editado por - fabin01 on 30/09/2009 15:18:41

Editado por - fabin01 on 30/09/2009 15:48:52

Editado por - fabin01 on 01/10/2009 10:24:04

Link to comment
Share on other sites

citação:


IF .NOT. FILE( "NOMEDOBANCO" )

DBCREATE... VEJA SINTAXE NO FORUM.

ENDIF

id=code>id=code>

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe


id=quote>id=quote>

manda o link onde esta a sintaxe que dou uam olhada sim...

isso eu crio logo apos a conexao??

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Esses são meus icon_smile_big.gif

Vc. pode conectar sem indicar o DATABASE e depois checar com If

Veja esse link

http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=15949

e mas este

http://www.fivewin.com.br/forum/topic.asp?whichpage=2&ARCHIVE=&TOPIC_ID=15931

faça uma busca por sqllib na pagina principal que tem mas..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Editado por - ico on 14/09/2009 14:42:22

Link to comment
Share on other sites

citação:

Esses são meus icon_smile_big.gif

Vc. pode conectar sem indicar o DATABASE e depois checar com If

Veja esse link

http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=15949

e mas este

http://www.fivewin.com.br/forum/topic.asp?whichpage=2&ARCHIVE=&TOPIC_ID=15931

faça uma busca por sqllib na pagina principal que tem mas..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Editado por - ico on 14/09/2009 14:42:22


id=quote>id=quote>

luiz estes comandos ja sao os novos ou ta usando ainda o do xbase....

é pq to qrendo aprender ja os novos tendeu?

e esse exemplo que vc me deu daria certo para que quando abrir o sistema verificar se as tabelas existem caso nao, criam-nas automaticamente?

valew

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

citação:

citação:

Esses são meus icon_smile_big.gif

Vc. pode conectar sem indicar o DATABASE e depois checar com If

Veja esse link

http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=15949

e mas este

http://www.fivewin.com.br/forum/topic.asp?whichpage=2&ARCHIVE=&TOPIC_ID=15931

faça uma busca por sqllib na pagina principal que tem mas..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Editado por - ico on 14/09/2009 14:42:22


id=quote>id=quote>

luiz estes comandos ja sao os novos ou ta usando ainda o do xbase....

é pq to qrendo aprender ja os novos tendeu?

e esse exemplo que vc me deu daria certo para que quando abrir o sistema verificar se as tabelas existem caso nao, criam-nas automaticamente?

valew

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C


id=quote>id=quote>

Sim Funcionam perfeitamente.. dai pra frente é que vc. vai usar SQL para inserir,excluir, pesquisar etc... etc...

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

Fábio, você agora precisa saber somente mais 3 coisas:

1º) Tudo que deve ser "gravado" no banco de dados/servidor, deve ser feito com SQLEXECUTE (Insert, Update, Delete, Drop, etc)

2º) Tudo que deve ser "lido" do banco de dados/servidor, deve ser feito com SQLARRAY (Select, Show, Explain, etc)

3º) Linguagem SQL

Resumidamente, é isso

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

luiz esta funçao seria para que


aestru:={}

Aadd(aestru, {"DTCOMPRA", "D", 010,000 })

Aadd(aestru, {"VALIDADE", "D", 010,000 })

Aadd(aestru, {"MARCA", "C", 025,000 })

Aadd(aestru, {"NUMERO", "C", 015,000 })

Aadd(aestru, {"LOJA", "C", 025,000 })

Aadd(aestru, {"VALOR", "N", 010,002 })

Aadd(aestru, {"DONO", "C", 003,000 })

ETC...

ETC... ETC... ETC...

id=code>id=code>

no caso seria para crira campos de uma tabela??

posso utiliar na criaçao o outro modo por exemplo create table CodNome int[5] primarykey notnull....??

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

citação:

luiz esta funçao seria para que


aestru:={}

Aadd(aestru, {"DTCOMPRA", "D", 010,000 })

Aadd(aestru, {"VALIDADE", "D", 010,000 })

Aadd(aestru, {"MARCA", "C", 025,000 })

Aadd(aestru, {"NUMERO", "C", 015,000 })

Aadd(aestru, {"LOJA", "C", 025,000 })

Aadd(aestru, {"VALOR", "N", 010,002 })

Aadd(aestru, {"DONO", "C", 003,000 })

ETC...

ETC... ETC... ETC...

id=code>id=code>

no caso seria para crira campos de uma tabela??

posso utiliar na criaçao o outro modo por exemplo create table CodNome int[5] primarykey notnull....??

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C


id=quote>id=quote>

Exactamente.. essa seria a estrutura do seu BD/tabela.

Neste codigozinho ai em baixo "xeco"... se o BD/tabela "cadastro" não existir eu crio ele com os campos definidos acima..


IF(! Table("Cadastro") )

If MsgYesNo("Tabela cadastro Não encontrada no BD"+CRLF+"Deseja cria-la ?","..::Ops!")

dbCreate("CADASTRO", aEstru)

Endif

Endif

id=code>id=code>

Depois é só seguir as dicas do Luisão são de extrema importância..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

citação:

Fábio, você agora precisa saber somente mais 3 coisas:

1º) Tudo que deve ser "gravado" no banco de dados/servidor, deve ser feito com SQLEXECUTE (Insert, Update, Delete, Drop, etc)

2º) Tudo que deve ser "lido" do banco de dados/servidor, deve ser feito com SQLARRAY (Select, Show, Explain, etc)

3º) Linguagem SQL

Resumidamente, é isso

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY


id=quote>id=quote>

luizao criei uma funçao conecta banco paraceida com a do luiz olhe so


Function Conecta_Banco()

*---

SQL CONNECT ON 'localhost';

PORT 3306;

DATABASE "Agenda";

USER "root";

PASSWORD 'solution';

OPTIONS SQL_NO_ERROR;

LIB 'MySQL'

IF SQLErrorNO() > 0

alert('Nao Conectou')

else

alert('Conexao Estabelecida com sucesso!')

endif

*-----

aDBS:= sqlArray("Show Databases")

*-----

IF ASCAN(aDBS,{|X|X[1]="Agenda"}) # 0

SQL EXECUTE "CREATE DATABASE Agenda"

SQLExecute("Use Agenda")

ELSE

IF msgYesNo("DataBase Inexistente"+CRLF+"Deseja Crialo Agora ?","....::DataBases")

SQL EXECUTE "CREATE DATABASE Agenda"

SQLExecute("Use Agenda")

ENDIF

ENDIF

Return .t.

id=code>id=code>

chamei ela no inicio da tela para testar, so que esta acontecendo o seguinte minha database agenda ja esta criada mas mesmo assim ele emite a msg se eu desejo cria-la o que esta errado?

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

citação:

luizao criei uma funçao conecta banco paraceida com a do luiz olhe so


Function Conecta_Banco()

*---

SQL CONNECT ON 'localhost';

PORT 3306;

DATABASE "Agenda";id=red>

USER "root";

PASSWORD 'solution';

OPTIONS SQL_NO_ERROR;

LIB 'MySQL'

IF SQLErrorNO() > 0

alert('Nao Conectou')

Return .F.id=blue>

else

alert('Conexao Estabelecida com sucesso!')

endif

*-----

aDBS:= sqlArray("Show Databases")

*-----

IF ASCAN(aDBS,{|X|X[1]="Agenda"}) # 0

//SQL EXECUTE "CREATE DATABASE Agenda"id=red>

SQLExecute("Use Agenda")

ELSE

IF msgYesNo("DataBase Inexistente"+CRLF+"Deseja Crialo Agora ?","....::DataBases")

SQL EXECUTE "CREATE DATABASE Agenda"

SQLExecute("Use Agenda")

ENDIF

ENDIF

Return .t.

id=code>id=code>

chamei ela no inicio da tela para testar, so que esta acontecendo o seguinte minha database agenda ja esta criada mas mesmo assim ele emite a msg se eu desejo cria-la o que esta errado?

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C


id=quote>id=quote>

Primeiramente, retire as linhas em vermelho.

Veja o sqllog.txt. Veja se ele tem alguma informação de erro e poste aqui, se possível.

ps.: Olha o Luiz, aprendeu faz pouco tempo e já está ensinando. Que bom que minhas respostas ajudaram (ajudaram né ?) =D

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

citação:

citação:

luizao criei uma funçao conecta banco paraceida com a do luiz olhe so


Function Conecta_Banco()

*---

SQL CONNECT ON 'localhost';

PORT 3306;

DATABASE "Agenda";id=red>

USER "root";

PASSWORD 'solution';

OPTIONS SQL_NO_ERROR;

LIB 'MySQL'

IF SQLErrorNO() > 0

alert('Nao Conectou')

Return .F.id=blue>

else

alert('Conexao Estabelecida com sucesso!')

endif

*-----

aDBS:= sqlArray("Show Databases")

*-----

IF ASCAN(aDBS,{|X|X[1]="Agenda"}) # 0

//SQL EXECUTE "CREATE DATABASE Agenda"id=red>

SQLExecute("Use Agenda")

ELSE

IF msgYesNo("DataBase Inexistente"+CRLF+"Deseja Crialo Agora ?","....::DataBases")

SQL EXECUTE "CREATE DATABASE Agenda"

SQLExecute("Use Agenda")

ENDIF

ENDIF

Return .t.

id=code>id=code>

chamei ela no inicio da tela para testar, so que esta acontecendo o seguinte minha database agenda ja esta criada mas mesmo assim ele emite a msg se eu desejo cria-la o que esta errado?

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C


id=quote>id=quote>

Primeiramente, retire as linhas em vermelho.

Veja o sqllog.txt. Veja se ele tem alguma informação de erro e poste aqui, se possível.

ps.: Olha o Luiz, aprendeu faz pouco tempo e já está ensinando. Que bom que minhas respostas ajudaram (ajudaram né ?) =D

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY


id=quote>id=quote>

Fabio coloque isso logo depois de fazer a conexão e antes do ASCAN


? "conectei ao DB: ",ToString(sqlArray("SELECT DATABASE()"))

id=code>id=code>

e veja o que acontece...

LUISÃO: Ajudaram não.. estão ajudando bastante icon_smile_big.gif

quando eu crescer quero ser igual a vc. icon_smile_big.gif

PS: Parei com o projeto(mto.serviço) mas assim que retornar vou perturbar icon_smile_big.gif

Abraços..

Luiz Arruda - Corumba(MS)

FiveWin 9.04

[x]Harbour

xDev

WS

--

Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia.

-

Não Abandone Seu Tópicoid=red>

Link to comment
Share on other sites

citação:Existe uma forma mais facil de testar se a tabela ja existe:

If Table( "...." )

.......

EndIf


id=quote>id=quote>

Sim, desta forma também da certo. Aí é questão de gosto. Eu prefiro usar os comandos SQL, pois se precisar migrar o sistema/programa sei que independente da linguagem, os comandos SQL continuarão o mesmo.

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

citação:

citação:

luizao criei uma funçao conecta banco paraceida com a do luiz olhe so


Function Conecta_Banco()

*---

SQL CONNECT ON 'localhost';

PORT 3306;

DATABASE "Agenda";id=red>

USER "root";

PASSWORD 'solution';

OPTIONS SQL_NO_ERROR;

LIB 'MySQL'

IF SQLErrorNO() > 0

alert('Nao Conectou')

Return .F.id=blue>

else

alert('Conexao Estabelecida com sucesso!')

endif

*-----

aDBS:= sqlArray("Show Databases")

*-----

IF ASCAN(aDBS,{|X|X[1]="Agenda"}) # 0

//SQL EXECUTE "CREATE DATABASE Agenda"id=red>

SQLExecute("Use Agenda")

ELSE

IF msgYesNo("DataBase Inexistente"+CRLF+"Deseja Crialo Agora ?","....::DataBases")

SQL EXECUTE "CREATE DATABASE Agenda"

SQLExecute("Use Agenda")

ENDIF

ENDIF

Return .t.

id=code>id=code>

chamei ela no inicio da tela para testar, so que esta acontecendo o seguinte minha database agenda ja esta criada mas mesmo assim ele emite a msg se eu desejo cria-la o que esta errado?

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C


id=quote>id=quote>

Primeiramente, retire as linhas em vermelho.

Veja o sqllog.txt. Veja se ele tem alguma informação de erro e poste aqui, se possível.

ps.: Olha o Luiz, aprendeu faz pouco tempo e já está ensinando. Que bom que minhas respostas ajudaram (ajudaram né ?) =D

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY


id=quote>id=quote>

os caras aqui sao feras mesmo rsrsr....

mas aqui luizao fiz as alteraçoes conforme vc me falou porem continua com a pergunta se desejo criar a database?

o que esta de errado??

e onde fica sqllog.txt??

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Antes do IF ASCAN... faça isso e veja se realmente ele encontrou os DataBases:


? SQLGetConnection() // Verifique se está conectado

id=code>id=code>

Outra coisa, o MySQL é case sensitive, ou seja, "Agenda" != "AGENDA" != "agenda".

O sqllog.txt fica na mesma pasta de seu executável.

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

citação:

Antes do IF ASCAN... faça isso e veja se realmente ele encontrou os DataBases:


? SQLGetConnection() // Verifique se está conectado

id=code>id=code>

Outra coisa, o MySQL é case sensitive, ou seja, "Agenda" != "AGENDA" != "agenda".

O sqllog.txt fica na mesma pasta de seu executável.

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY


id=quote>id=quote>

que tolice a minha esqci do "CASE SENSITIVE" estava colocando em maiuscula sendo que era minusculo agora deu certo aqui heheh...

luisao esta parte peguei ja agora queria o seguinte que verificasse se as tabelas que vou utilizar existem se nao existem o sistema cria como o exemplo da database tendeu??

e no caso queria ja criar as tabelas neste formato cadastr(varchar primarykey notnull... tem como??

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Para verificar se a tabela existe use a função TABLE(nome_tablea) da LIB ou algo assim:


cQuery:= "Show Tables from " + cdatabase +" where Tables_in_" + cdatabase +" = '"+tabela+"'"

aTabela:= sqlArray( cQuery )

If Len(aTabela) == 0

? 'não existe'

else

? 'existe'

endif

id=code>id=code>

Para criar a tabela:


cCriar:= CREATE TABLE `cadastro3` (

`NOME` varchar(40) default NULL,

`SOBRENOME` varchar(40) default NULL,

`ANIV` date default NULL,

`CODIGO` bigint(10) NOT NULL auto_increment,

PRIMARY KEY (`CODIGO`)

) ENGINE=INNODB DEFAULT CHARSET=latin1;

SQLExecute(cCriar)

id=code>id=code>

Ou use o DBCreate como o pessoal já postou

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

citação:

Para verificar se a tabela existe use a função TABLE(nome_tablea) da LIB ou algo assim:


cQuery:= "Show Tables from " + cdatabase +id=red>" where Tables_in_" + cdatabase +" = '"+tabela+"'"

aTabela:= sqlArray( cQuery )

If Len(aTabela) == 0

? 'não existe'

else

? 'existe'

endif

id=code>id=code>

Para criar a tabela:


cCriar:= CREATE TABLE `cadastro3` (

`NOME` varchar(40) default NULL,

`SOBRENOME` varchar(40) default NULL,

`ANIV` date default NULL,

`CODIGO` bigint(10) NOT NULL auto_increment,

PRIMARY KEY (`CODIGO`)

) ENGINE=INNODB DEFAULT CHARSET=latin1;id=red>

SQLExecute(cCriar)

id=code>id=code>

Ou use o DBCreate como o pessoal já postou

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY


id=quote>id=quote>

tem como vc me explicar as linhas que marquei??

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

O cDatabase é o nome do seu DB (Agenda). Coloquei desta forma, pois você poderia fazer uma função que receberia 2 parâmetros (cDatabase e tabela), e retornaria se aquela tabela existe ou não naquele DB.

Sobre o ENGINE, recomendo você dar uma pesquisada na net sobre a diferença entre MyISAM e INNODB para poder escolher o melhor engine para suas necessidades. O CHARSET "latin1" é o default, coloquei só por colocar mesmo.

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

citação:

O cDatabase é o nome do seu DB (Agenda). Coloquei desta forma, pois você poderia fazer uma função que receberia 2 parâmetros (cDatabase e tabela), e retornaria se aquela tabela existe ou não naquele DB.

Sobre o ENGINE, recomendo você dar uma pesquisada na net sobre a diferença entre MyISAM e INNODB para poder escolher o melhor engine para suas necessidades. O CHARSET "latin1" é o default, coloquei só por colocar mesmo.

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY


id=quote>id=quote>

no caso luisao coloco isso na mesma funçao onde esta a conexao? vou tentar aqui caso nao consiga vou te chamra ok? valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

luizao fiz assim


aTabela:= sqlArray(cQuerry)

cTab_Cad_Cliente:= CREATE TABLE 'Cadastro_Clientes' (

'Empresa' varchar(35) NOT NULL,

'Contato' varchar(35) default NULL,

'Email' varchar(50) NOT NULL,

'Telefone' int(10),

'CodCliente' bigint(10) NOT NULL auto_increment,

PRIMARY KEY ('CodCliente'))ENGINE=INNODB DEFAULT CHARSET=latin1;

IF Len(aTablea) == 0

IF msgYesNo("Tabela Inexistente"+CRLF+"Deseja Criala Agora ?","...::Tabelas")

SQLExecute(cTab_Cad_Cliente)

Else

SQLExecute("Use cTab_Cad_Cliente")

ENDIF

ENDIF

Return .t.

id=code>id=code>

meu chefe me mostrou aqui utilizando o dbcreate, pareceu bem mais facil, mas devo inciar ja logo pelos comandos do que estou fazendo acim ou pelo dbcreate??

da uma olhada e ve em q errei?

valews

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Seria mais ou menos assim...

Quanto tiver mais sussas eu dou mais detalhes:


// Cria a tabela

ENDIF

IF !Existe("Agenda",NIL,1,.T.) // Verifica se o DB Agenda (sem MSG)

// Cria o DB

ENDIF

Function Existe( cDB, cTable, nOpc, lMsg )

LOCAL cQuery

LOCLA aQuery

lMsg:= IF(lMsg == NIL,.F.,lMsg)

IF EMPTY(cDB) .AND. EMPTY(cTable)

Return .T.

ENDIF

IF nOpc == 1 // VERIFICA DB

cQuery:= "Show Databases"

aQuery:= sqlArray( cQuery )

IF ASCAN(aQuery,{|X|X[1]=cDB}) == 0

IF lMsg

? "DB "+cDB+" não existe!"

ENDIF

Return .F.

ENDIF

IF lMsg

? "DB "+cDB+" existe!"

ENDIF

Return .T.

ELSE // VERIFICA TABELA

cQuery:= "Show Tables from " + cDB +" where Tables_in_" + cDB +" = '"+cTable+"'""

aQuery:= sqlArray( cQuery )

IF LEN(aQuery) == 0

IF lMsg

? "Tablela "+cTable+" não existe!"

ENDIF

Return .F.

ENDIF

IF lMsg

? "Tabela "+cTable+" existe!"

ENDIF

Return .T.

ENDIF

Return .T.

id=code>id=code>

ps.: Não testei

Luis Fernando Jr.(Luisão)

"Seize the day or die regretting the time you lost"

FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY

Link to comment
Share on other sites

luizao no meu codigo nao daria certo nao??

vou postar ele todo e veja se deste jeito que esta tem como fazer ou tenho que fazer adaptaçoes com o exemplo que vc me passou


*---

SQL CONNECT ON 'localhost';

PORT 3306;

USER "root";

PASSWORD 'solution';

OPTIONS SQL_NO_ERROR;

LIB 'MySQL'

IF SQLErrorNO() > 0

alert('Nao Conectou')

Return .F.

else

alert('Conexao Estabelecida com sucesso!')

endif

*-----

aDBS:= sqlArray("Show Databases")

*-----

IF ASCAN(aDBS,{|X|X[1]="agenda"}) # 0

SQLExecute("Use agenda")

ELSE

IF msgYesNo("DataBase Inexistente"+CRLF+"Deseja Crialo Agora ?","....::DataBases")

SQL EXECUTE "CREATE DATABASE agenda"

SQLExecute("Use agenda")

ENDIF

ENDIF

*------

cQuerry:= "Show tables from" + agenda + "where Tables_in_" + agenda + " = '"+Cadastro_Clientes+"'"

aTabela:= sqlArray(cQuerry)

cTab_Cad_Cliente:= CREATE TABLE 'Cadastro_Clientes' (

'Empresa' varchar(35) NOT NULL,

'Contato' varchar(35) default NULL,

'Email' varchar(50) NOT NULL,

'Telefone' int(10),

'CodCliente' bigint(10) NOT NULL auto_increment,

PRIMARY KEY ('CodCliente'))ENGINE=INNODB DEFAULT CHARSET=latin1;

IF Len(aTablea) == 0

IF msgYesNo("Tabela Inexistente"+CRLF+"Deseja Criala Agora ?","...::Tabelas")

SQLExecute(cTab_Cad_Cliente)

Else

SQLExecute("Use cTab_Cad_Cliente")

ENDIF

ENDIF

Return .t.

id=code>id=code>

Obrigado pela ATENÇÃO e AJUDA!

"O homem deve criar as oportunidades e não somente encontrá-las."

Fábio Igor (BH-MG)

fabio.igor@hotmail.com

Iniciante

FWH 2.8

[x]Harbour 9.61

xdev 0.70

Pelles C

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...