fabin01 Posted September 14, 2009 Report Share Posted September 14, 2009 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 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 14, 2009 Author Report Share Posted September 14, 2009 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted September 14, 2009 Report Share Posted September 14, 2009 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 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 14, 2009 Author Report Share Posted September 14, 2009 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 Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 14, 2009 Report Share Posted September 14, 2009 Esses são meus 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 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 14, 2009 Author Report Share Posted September 14, 2009 citação:Esses são meus 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 Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 14, 2009 Report Share Posted September 14, 2009 citação: citação:Esses são meus 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> Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 14, 2009 Report Share Posted September 14, 2009 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 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 14, 2009 Author Report Share Posted September 14, 2009 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 Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 14, 2009 Report Share Posted September 14, 2009 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> Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 14, 2009 Author Report Share Posted September 14, 2009 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 Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 14, 2009 Report Share Posted September 14, 2009 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 Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 14, 2009 Report Share Posted September 14, 2009 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 quando eu crescer quero ser igual a vc. PS: Parei com o projeto(mto.serviço) mas assim que retornar vou perturbar 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> Quote Link to comment Share on other sites More sharing options...
elitenet Posted September 15, 2009 Report Share Posted September 15, 2009 Existe uma forma mais facil de testar se a tabela ja existe: If Table( "...." ) ....... EndIf FW 2.3C/CLIPPER 5.X/XHARBOUR/C/C++/JAVA/DELPHI/XMATE/MD/MYSQL/FIREBIRD/INTERBASE Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 15, 2009 Report Share Posted September 15, 2009 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 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 15, 2009 Author Report Share Posted September 15, 2009 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 Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 15, 2009 Report Share Posted September 15, 2009 Antes do IF ASCAN... faça isso e veja se realmente ele encontrou os DataBases: ? SQLGetConnection() // Verifique se está conectadoid=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 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 15, 2009 Author Report Share Posted September 15, 2009 citação:Antes do IF ASCAN... faça isso e veja se realmente ele encontrou os DataBases: ? SQLGetConnection() // Verifique se está conectadoid=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 Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 15, 2009 Report Share Posted September 15, 2009 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 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 15, 2009 Author Report Share Posted September 15, 2009 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 Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 15, 2009 Report Share Posted September 15, 2009 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 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 15, 2009 Author Report Share Posted September 15, 2009 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 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 15, 2009 Author Report Share Posted September 15, 2009 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 Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 15, 2009 Report Share Posted September 15, 2009 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 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 15, 2009 Author Report Share Posted September 15, 2009 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.