Jump to content
Fivewin Brasil

Tabela MysQl\SqlLib


Luiz Arruda (ICO)

Recommended Posts

Pessoal o que está errado nisto ai ???


aStru:={}

AAdd(aStru,{"NOME","c",1,0})

AAdd(aStru,{"CPF","c",10,0})

AAdd(aStru,{"teste3","c",10,0})

AAdd(aStru,{"teste4","c",10,0})

AAdd(aStru,{"teste5","c",10,0})

DbCreate("test",aStru)

id=code>id=code>

? Table('test') // Tá Retornando .F.

e na pasta DAT\test não tem nada.. tá vazia de tudo

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com

Link to comment
Share on other sites

Pessoal o que está errado nisto ai ???


aStru:={}

AAdd(aStru,{"NOME","c",1,0})

AAdd(aStru,{"CPF","c",10,0})

AAdd(aStru,{"teste3","c",10,0})

AAdd(aStru,{"teste4","c",10,0})

AAdd(aStru,{"teste5","c",10,0})

DbCreate("test",aStru)

id=code>id=code>

? Table('test') // Tá Retornando .F.

e na pasta DAT\test não tem nada.. tá vazia de tudo

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com

Link to comment
Share on other sites

Luiz,

A única coisa que vejo que poderia ser motivo é o nome "test". O MySQL possui um database com esse mesmo nome (oq não tem nada a ver pq vc estaria criando uma tabela e não um database).

Experimenta colocar outro nome para a tabela... de repente, o mysql possui alguma palavra reservada "test" para qualquer coisa...

O resto, pelo que conheço, tá todo certinho mesmo! :(

--

Júlio César M. Ferreira

www.rsconsultores.com.br

Fone: (81) 4009.5444

Fax: (81) 4009.5400

E-mail: julio.mferreira@gmail.com

MSN: julio_mferreira@hotmail.com

Recife - PE

FWh 8.08/ xHarbour 1.1.0/ xDevStudio 0.72/ SQL LIB 1.9/ Pelles 5.00.1

Link to comment
Share on other sites

Jc / Vailton

Dentro de DATA\Criei uma pasta TESTE

e conectei assim;


SQL CONNECT ON "localhost";

DATABASE "teste" ;

USER "root" ;

PASSWORD 'MInhaSenha';

LIB 'MySQL'

id=code>id=code>

Dentro da pasta TESTE foi criado então a tabela foi criada não é mesmo ???

e agora como adiciono Registros nela ??

Fiz um browse e tá tudo branco

Obrigado..

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com

Link to comment
Share on other sites

Ico, como vcoe vai usar a SqlLIb, com comandos SQL ou com comandos para DBF , se for usar com comandos DBF é só usar os repalces normalmente, se for usar com comandos SQL, vai inserir dados com O sqlexec("isert into ....")

ex:

Da uma olhada nesse sample para preencher uma base de dados

e mostrar no browse()


Func main()

#include "MyInclude.ch"

REQUEST MySQL,SQLLIB

RDDSETDEFAULT("MySql")

DBSETDRIVER("MySql")

SQL CONNECT ON 'localhost';

PORT 3306 ;

DATABASE 'Mydatabase';

USER 'root';

PASSWORD 'adm';

LIB 'MySQL'

IF SQLErrorNO() > 0

alert('Não conectou')

quit

endif

vRet=SQLEXEC("USE Mydatabase")

iif(vRet=.f.,msgstop("Não foi possivel abrir database"),)

vRet:=SQLEXEC("CREATE TABLE IF NOT EXISTS CLIENT("+;

"cod INT(05) NOT NULL AUTO_INCREMENT,"+;

"nome CHAR(50),"+;

"endereco CHAR(50),"+;

"bairro CHAR(50),"+;

"cidade CHAR(50),"+;

"estado CHAR(02),"+;

"Cep CHAR(09),"+;

"tel CHAR(13),"+;

"fax CHAR(13),"+;

"email CHAR(50),"+;

"site CHAR(50),"+;

"cnpj int(18),"+;

"cpf int(18),"+;

"ie int(15),"+;

"datcad CHAR(10),"+;

"PRIMARY KEY (COD))")

iif(vRet=.f.,("Não foi possivel criar Tabela *Clientes*"),)

vnome:="uZumaki Naruto"

vEndereco:="xxx"

vBairro:="xxxx"

vCidade:="xxx"

vEstado:="XX"

ncont=0

nStart=seconds()

msginfo("init into to database")

do while ncont++<=1000

SQLEXEC('INSERT INTO CLIENT(nome,endereco) Values('+"'"+vNome+"','"+vEndereco+"')")=.f.

enddo

msginfo("fim"+" "+ str(Seconds()-nStart))//para ver a velociada de da coisa

use client via "mysql"

browse()

id=code>id=code>

____________________________

Eder Xavier

Msn:eder_xavier_2@hotmail.com

C:\Xharbour Free\fivewin 8.05\workshop\VSX gifsparaorkutnaruto32oy0.gif

Link to comment
Share on other sites

citação:

Naruto .. agora lascou de vex

na pasta DATA\test foi criada client.frm, não sei PQ. se to conectando como TESTE

alem de criar na pasta test dá uma monte de erro e o browse continua mostrando vazio...


id=quote>id=quote>

Vamos por partes, precisamos saber como voce esta usando a SQLlib , é com comandos SQL ou os comandos DBF

coloca o codigo aqui pra gente dar uma olhada...

____________________________

Eder Xavier

Msn:eder_xavier_2@hotmail.com

C:\Xharbour Free\fivewin 8.05\workshop\VSX gifsparaorkutnaruto32oy0.gif

Link to comment
Share on other sites

Erro nesta Linha.. nem passa na compilação


SQLEXEC('INSERT INTO CLIENT(nome,endereco) Values('+"'"+vNome+"','"+vEndereco+"')")=.f.

o erro é este: Error E0022 Invalid lvalue: '()'

id=code>id=code>

Se eu Comento ela compila.. mas após conectar dá esse outro erro..


Error description: Error SQLLIB/1001 MySQL RDD: Can't create table '.\test\sql$indexes.frm' (errno: 121)

id=code>id=code>

e agora...

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com

Link to comment
Share on other sites

o Código é esse ai.. do jeito q C passou..


#Include "FiveWin.ch"

#Include "sqllib.ch"

FUNCTION MAIN()

REQUEST SQLLIB

REQUEST MySQL

RDDSETDEFAULT("MySql")

DBSETDRIVER("MySql")

//---------------------LOCALIZAR O GPF

SetUnhandledExceptionFilter( @GpfHandler() )

SQL CONNECT ON "localhost";

DATABASE "test" ;

USER "root" ;

PASSWORD 'MynhaSenha';

LIB 'MySQL'

IF SQLErrorNO() > 0

Alert("Não Conectou")

Else

Alert("Conectou")

endif

*aStru:={}

* AAdd(aStru,{"NOME","c",1,0})

* AAdd(aStru,{"CPF","c",10,0})

* AAdd(aStru,{"teste3","c",10,0})

* AAdd(aStru,{"teste4","c",10,0})

* AAdd(aStru,{"teste5","c",10,0})

*DbCreate("test",aStru)

vRet=SQLEXEC("USE test")

iif(vRet=.f.,msgstop("Não foi possivel abrir database"),)

//------------------------------------------------------------------

vRet:=SQLEXEC("CREATE TABLE IF NOT EXISTS CLIENT("+;

"cod INT(05) NOT NULL AUTO_INCREMENT,"+;

"nome CHAR(50),"+;

"endereco CHAR(50),"+;

"bairro CHAR(50),"+;

"cidade CHAR(50),"+;

"estado CHAR(02),"+;

"Cep CHAR(09),"+;

"tel CHAR(13),"+;

"fax CHAR(13),"+;

"email CHAR(50),"+;

"site CHAR(50),"+;

"cnpj int(18),"+;

"cpf int(18),"+;

"ie int(15),"+;

"datcad CHAR(10),"+;

"PRIMARY KEY (COD))")

iif(vRet=.f.,("Não foi possivel criar Tabela *Clientes*"),)

vnome:="uZumaki Naruto"

vEndereco:="xxx"

vBairro:="xxxx"

vCidade:="xxx"

vEstado:="XX"

ncont=0

nStart=seconds()

msginfo("init into to database")

do while ncont++<=1000

//SQLEXEC('INSERT INTO CLIENT(nome,endereco) Values('+"'"+vNome+"','"+vEndereco+"')")=.f.

enddo

msginfo("fim"+" "+ str(Seconds()-nStart))//para ver a velociada de da coisa

use client via "mysql"

browse()

id=code>id=code>

id=size2>

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com

Link to comment
Share on other sites

Então no caso voce vai usar comandos SQL !

voce ja verificou se a Tabela CLIENT ,realmente foi criada!

comente o resto do codigo, e deixe somente esta parte..


#Include "FiveWin.ch"

#Include "sqllib.ch"

FUNCTION MAIN()

REQUEST SQLLIB

REQUEST MySQL

RDDSETDEFAULT("MySql")

DBSETDRIVER("MySql")

SQL CONNECT ON "localhost";

DATABASE "test" ;

USER "root" ;

PASSWORD 'MynhaSenha';

LIB 'MySQL'

IF SQLErrorNO() > 0

Alert("Não Conectou")

Else

Alert("Conectou")

endif

vRet=SQLEXEC("USE test")

iif(vRet=.f.,msgstop("Não foi possivel abrir database"),)

vRet:=SQLEXEC("CREATE TABLE IF NOT EXISTS CLIENT("+;

"cod INT(05) NOT NULL AUTO_INCREMENT,"+;

"nome CHAR(50),"+;

"endereco CHAR(50),"+;

"bairro CHAR(50),"+;

"cidade CHAR(50),"+;

"estado CHAR(02),"+;

"Cep CHAR(09),"+;

"tel CHAR(13),"+;

"fax CHAR(13),"+;

"email CHAR(50),"+;

"site CHAR(50),"+;

"cnpj int(18),"+;

"cpf int(18),"+;

"ie int(15),"+;

"datcad CHAR(10),"+;

"PRIMARY KEY (COD))")

id=code>id=code>

Uma dica, voce pode fazer verificação, usando o prompt do mysql o MySQL Command Line Clientid=red> que esta na pasta do mysql no menu iniciar

veja na imagem id=blue>

http://img84.imageshack.us/my.php?image=imagemlz4.jpg

Existe tbm algumas IDE´s para voce administrar sua base de dados, no caso eu to usando para verificar se deu tudo certo assim como se usa o o prompt do mysql, só que visual

estou usando o "navicat" para o que preciso no momento me serve :)

Da um manjo aqui

http://img362.imageshack.us/my.php?image=imagemtt4.jpg

____________________________

Eder Xavier

Msn:eder_xavier_2@hotmail.com

C:\Xharbour Free\fivewin 8.05\workshop\VSX gifsparaorkutnaruto32oy0.gif

Link to comment
Share on other sites

Acho que o erro cometido foi na parte do "Dentro de DATA\Criei uma pasta TESTE e conectei assim..."

Para criar uma pasta usa-se o comando SQL "CREATE DATABASE" e nunca deve-se mexer diretamente na pasta de dados do banco. Para criar um tabela, pode-se usar o DBCreate() ou o comando SQL "CREATE TABLE..."

Ico, o MySQL mantem um dicionario de dados internos com informações para melhor performance e outros detalhes que podem ser seriamente prejudicados se mexermos em algo incorretamente... Minha sugestão é usar o EMS MySQL Manager Lite ou algum correspondente para manipular os dados.

Qqer coisa dê DROP DATABASE nos bancos que você criou e reinicie os testes e qqer coisa dá um grito aê.

assinatura.jpg

Link to comment
Share on other sites

Sei que tá todo mundo querendo ajudar..

e agradeço pela força..

Mas Eu não sei nada sobre MySql/SqlLIB, o que eu gostaria

de saber é o básicão mesmo..

1)-Como Criar DataBase

2)-Como Criar Tabela

3)-Como Abrir Tabela

4)-Como Inserir Dados(registros) na Tabela

Tendo isso em mente, o resto a gente corre atrás..

Este exemplo que postei acima (DbCreate()), eu consegui mexendo no manual da SqlLIB, mas para mim que sou "Cru" duma vez no negócio se torna dificil pegar um manual gigantesco e saber onde procurar... Mas mesmo assim vou aqui perreando com ele..

mas uma vez obrigado..

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com

Link to comment
Share on other sites

citação:

Sei que tá todo mundo querendo ajudar..

e agradeço pela força..

Mas Eu não sei nada sobre MySql/SqlLIB, o que eu gostaria

de saber é o básicão mesmo..

1)-Como Criar DataBase

2)-Como Criar Tabela

3)-Como Abrir Tabela

4)-Como Inserir Dados(registros) na Tabela

Tendo isso em mente, o resto a gente corre atrás..

Este exemplo que postei acima (DbCreate()), eu consegui mexendo no manual da SqlLIB, mas para mim que sou "Cru" duma vez no negócio se torna dificil pegar um manual gigantesco e saber onde procurar... Mas mesmo assim vou aqui perreando com ele..

mas uma vez obrigado..

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com


id=quote>id=quote>

Boa tarde !!!

Faço coro ao ico e peço mais:

Um programa básico que criasse uma base de dados->tabela->browse basico(com incluir/excluir e etc...) para gente ter uma idéia. Quando comecei no fivewin foi dificil entender a dinamica de um programa for windows. O mesmo está acontecendo agora que estou tentando mudar do dbf para o SQL.

Quero mudar para SQL e não apenas "turbinar" o DBF

Sds

José Carlos - ZECA

fw23c-clipper52e-blinker 7.0 - six 3.02 - Windows XP

Link to comment
Share on other sites

iiiPi! iiPi!! URRA..

Consegui Criar uma tabela em DATA\Test e Inserir Campos nela..

Agora vou ao próximo passo... incluir Registros ..

Obrigado a todos que perderam um pouco de seu tempo tentando ajudar..

Mas ainda tô precisando de uma ajudinhaicon_smile_big.gif he! he! he!id=size1>

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com

Link to comment
Share on other sites

citação:

iiiPi! iiPi!! URRA..

Consegui Criar uma tabela em DATA\Test e Inserir Campos nela..

Agora vou ao próximo passo... incluir Registros ..

Obrigado a todos que perderam um pouco de seu tempo tentando ajudar..

Mas ainda tô precisando de uma ajudinhaicon_smile_big.gif he! he! he!id=size1>

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com


id=quote>id=quote>

Agora é isso aqui

SQLEXEC('INSERT INTO CLIENT(nome,endereco) Values('+"'"+vNome+"','"+vEndereco+"')")

____________________________

Eder Xavier

Msn:eder_xavier_2@hotmail.com

C:\Xharbour Free\fivewin 8.05\workshop\VSX gifsparaorkutnaruto32oy0.gif

Link to comment
Share on other sites

citação:

citação:

iiiPi! iiPi!! URRA..

Consegui Criar uma tabela em DATA\Test e Inserir Campos nela..

Agora vou ao próximo passo... incluir Registros ..

Obrigado a todos que perderam um pouco de seu tempo tentando ajudar..

Mas ainda tô precisando de uma ajudinhaicon_smile_big.gif he! he! he!id=size1>

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com


id=quote>id=quote>

Agora é isso aqui

SQLEXEC('INSERT INTO CLIENT(nome,endereco) Values('+"'"+vNome+"','"+vEndereco+"')")

____________________________

Eder Xavier

Msn:eder_xavier_2@hotmail.com

C:\Xharbour Free\fivewin 8.05\workshop\VSX gifsparaorkutnaruto32oy0.gif


id=quote>id=quote>

Grande Eder..

é Exatamente como to fazendo, mas o browse mostra vazio. em branco, sem nada dentro..

veja ai meu teste...


cNome := "Luiz Arruda"

cCpf := "500000000-01"

SQLEXEC('INSERT INTO Pessoal(nome,cpf) Values('+"'"+cNome+"','"+ccpf+"')")

id=code>id=code>

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com

Link to comment
Share on other sites

Luiz,

Lembra do comentário do Vailton sobre não criar bancos de dados pelo diretório do MySQL e sim pelos comandos da SQLLIB... O resto tá filé demais!

Daqui a pouco vc vai ser mais um no mundo SQL... sem comparação! :)

--

Júlio César M. Ferreira

www.rsconsultores.com.br

Fone: (81) 4009.5444

Fax: (81) 4009.5400

E-mail: julio.mferreira@gmail.com

MSN: julio_mferreira@hotmail.com

Recife - PE

FWh 8.08/ xHarbour 1.1.0/ xDevStudio 0.72/ SQL LIB 1.9/ Pelles 5.00.1

Link to comment
Share on other sites

citação:

Luiz,

Lembra do comentário do Vailton sobre não criar bancos de dados pelo diretório do MySQL e sim pelos comandos da SQLLIB... O resto tá filé demais!

Daqui a pouco vc vai ser mais um no mundo SQL... sem comparação! :)

--

Júlio César M. Ferreira

www.rsconsultores.com.br

Fone: (81) 4009.5444

Fax: (81) 4009.5400

E-mail: julio.mferreira@gmail.com

MSN: julio_mferreira@hotmail.com

Recife - PE

FWh 8.08/ xHarbour 1.1.0/ xDevStudio 0.72/ SQL LIB 1.9/ Pelles 5.00.1


id=quote>id=quote>

Julio.. já dei uma passo a frente

Já criei tudo, inclusive inserir registros na tabela..

o que tá pegando é que nada mas funciona tipo;

Append Blank

Replace

Seek

Index on

Tentei criar um INdex assim


sqlexec("create index Nome_index on Pessoal (NOME)")

id=code>id=code>

Não deu erro nem um, mas não dá Seek na Tabela

Retorna um erro que esse comando não é suportado e vai pro pau.. como vamos dar um seek na tabela então ???

Sendo assim terei que aprender a programar em MysQL ??

Vi tb. em outro tópico que não é possivel com a SqlLIB Free criar Indixes.. acho que p/ mim não vai servir.. tudo que faço é em cima de Indices...

To apanhando que nem doido revoltado...

Dá uma luzinha ai vai...

Luiz Arruda icon_smile_8ball.gif

FWH24-WS-xHB 9950-xDev

ico.corumba@gmail.com

Link to comment
Share on other sites

citação:

Vi tb. em outro tópico que não é possivel com a SqlLIB Free criar Indixes.. acho que p/ mim não vai servir.. tudo que faço é em cima de Indices...


id=quote>id=quote>

Criar até cria, mas usando comandos SQL

SELECT FROM

&

lOCATE

dependendo do tamanho "estimado" da tabela nem precisa...

té++

____________________________

Eder Xavier

Msn:eder_xavier_2@hotmail.com

C:\Xharbour Free\fivewin 8.05\workshop\VSX gifsparaorkutnaruto32oy0.gif

Link to comment
Share on other sites

... Se voce der uma olhada na criação da tabela, notara que um indice ja foi criado =)


vRet:=SQLEXEC("CREATE TABLE IF NOT EXISTS CLIENT("+;

"cod INT(05) NOT NULL AUTO_INCREMENT,"+; id=red>

"nome CHAR(50),"+;

"endereco CHAR(50),"+;

"bairro CHAR(50),"+;

"cidade CHAR(50),"+;

"estado CHAR(02),"+;

"Cep CHAR(09),"+;

"tel CHAR(13),"+;

"fax CHAR(13),"+;

"email CHAR(50),"+;

"site CHAR(50),"+;

"cnpj int(18),"+;

"cpf int(18),"+;

"ie int(15),"+;

"datcad CHAR(10),"+;

"PRIMARY KEY (COD))")id=red>

id=code>id=code>

Criar um indice

sqlexec("CREATE INDEX ON client index_name (index_col_name)") // assim é a forma mais simples de se criar...

http://dev.mysql.com/doc/refman/4.1/pt/create-index.html

____________________________

Eder Xavier

Msn:eder_xavier_2@hotmail.com

C:\Xharbour Free\fivewin 8.05\workshop\VSX gifsparaorkutnaruto32oy0.gif

Editado por - naruto uZumaki on 23/10/2008 08:50:22

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...