AdoXb

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

jose hilton
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 03 Ago 2008 11:28
Localização: Salvador-ba

AdoXb

Mensagem por jose hilton »

Bom dia a todos

Pessoal eu gostaria de tirar duvidas sobre essa biblioteca, eu comei a utilizala mais mim deparei com algumas divicudades como por exemplo.

Tabelas: Tentei criar um tabela so que da erro quanto tendo cria um campo numerico
aqui ta a rotique que fiz


cTabela := 'CREATE TABLE ESTOQUE '
cTabela += "("
cTabela += 'Grupo char(3),'
cTabela += ' Codigo char(4),'
ctabela += ' Descricao varchar(50),'
cTabela += " Preco numeric(10,2),"
cTabela += ' unique(grupo)'
ctabela += ' )'
ADO EXECUTE &cTabela

bom quando eu tiro o campo ---> Preco Numeric(10,2) ele funciona, onde estou errando

Grato

Hilton
xHarbour
xdev0.65
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Re: AdoXb

Mensagem por rodrmigu »

Olá,

Qual o banco de dados? O Oracle, por exemplo, usa Number ao invés de Numeric. Aliás, vc consegue criar esta mesma tabela pela aplicação do banco de dados?

[]'s
Rodrigo
jose hilton
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 03 Ago 2008 11:28
Localização: Salvador-ba

Re: AdoXb

Mensagem por jose hilton »

Oi Rodrigo

Eu estou usando o Firebird
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: AdoXb

Mensagem por rochinha »

Amiguinho,

use DOUBLE ao inves de NUMERIC ou NUMBER. Testei com MySQL, Access e Firebird. Mas em todo o caso verifique os tipo de dados existentes para o mesmo.

Exemplo:

Código: Selecionar todos

   if .not. ADOFile( "tabela" )
      MsgRun( "Criando tabela TABELA DE JUROS..." )
      DROP TABLE IF EXISTS tabela
      CREATE TABLE IF NOT EXISTS tabela(;
             RECNO INT NOT NULL AUTO_INCREMENT,;
             tabela CHAR(18),;
             n2 INT(9),;
             n3 DOUBLE(9,6),;
             n4 DOUBLE(9,2),;
             PRIMARY KEY(RECNO) )
      *
      * Inserindo Dados na Tabela
      *
      INSERT INTO tabela VALUES(1,'TVLS00',6,0.179229,1.99)
      INSERT INTO tabela VALUES(2,'TVLS00',12,0.095242,1.99)
      INSERT INTO tabela VALUES(3,'TVLS00',18,0.067309,1.99)
      INSERT INTO tabela VALUES(4,'TVLS00',24,0.053154,1.95)
      INSERT INTO tabela VALUES(5,'TVLS00',36,0.038760,1.85)
      INSERT INTO tabela VALUES(6,'TVLS00',42,0.035531,1.95)
      INSERT INTO tabela VALUES(7,'TVLS00',48,0.032947,1.99)
   endif
   RETURN .t.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
jose hilton
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 03 Ago 2008 11:28
Localização: Salvador-ba

Re: AdoXb

Mensagem por jose hilton »

Oi Rochinha

olha eu fiz seu exemplo mais nao resolvel olhe a messa que esta aparecendo
um outra duvida que eu tenho e --> COMO FUNCIONARIA O SEEK COM O ADOXB

cTabela := 'CREATE TABLE ESTOQUE '
cTabela += "("
cTabela += 'Grupo char(3),'
cTabela += ' Codigo char(4),'
cTabela += ' Ean char(13),'
ctabela += ' Descricao varchar(50),'
ctabela += ' Preco DOUBLE(9,2),'
cTabela += ' unique(ean)'
ctabela += ' )'
ADO EXECUTE &cTabela

APARECE ESSE ERRO

Application
===========
Path and name: C:\downloads\adoRDDxx\Source\adorxb.EXE (32 bits)
Size: 1,266,688 bytes
Time from start: 0 hours 0 mins 5 secs
Error occurred at: 08/05/08, 13:32:50
Error description: Error ADODB.connection/9 Dynamic SQL Error
SQL error code = -607
table/view ESTOQUE does not exist: EXECUTE
Args:
[ 1] = C DROP TABLE Estoque

Stack Calls
===========
Called from TOLEAUTO:EXECUTE(0)
Called from ADOEXECUTE(556)
Called from CUSTOMER(100)

System
======
CPU type: Pentium III 1500 Mhz
Hardware memory: 448 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Compiler version: xHarbour build 0.99.50 Intl. (SimpLex)
Windows version: 5.1, Build 2600 Service Pack 2

Windows total applications running: 0

Variables in use
================
Procedure Type Value
==========================
TOLEAUTO:EXECUTE
Param 1: C "DROP TABLE Estoque"
ADOEXECUTE
Param 1: C "DROP TABLE Estoque"
CUSTOMER
Local 1: C "FIREBIRD"

Linked RDDs
===========
DBF
DBFNTX
ADORDD

DataBases in use
================

Classes in use:
===============
1 HBCLASS
2 HBOBJECT
3 TWINDOW
4 TDIALOG
5 TBRUSH
6 TFONT
7 TOLEAUTO
8 ERROR

Memory Analysis
===============
132 Static variables

Dynamic memory consume:
Actual Value: 505167 bytes
Highest Value: 524503 bytes


Grato
Jose Hilton
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: AdoXb

Mensagem por rochinha »

Amiguinho

Parece me que o erro ocorreu na linha DROP TABLE, ou seja, voce não pode executar um comando assim se uma tabela não existe.

Provavelmente nos codigos que disponibilizei eu faço um teste com ADOFile() para verificar se o mesmo existe.

Em todo o caso verifique dentro de seu DB se as tabelas foram criadas e elimine a linha DROP TABLE.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
jose hilton
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 03 Ago 2008 11:28
Localização: Salvador-ba

Re: AdoXb

Mensagem por jose hilton »

Desculpe Rochinha, na realidade o erro foi esse

Grato Hilton



pplication
===========
Path and name: C:\downloads\adoRDDxx\Source\adorxb.EXE (32 bits)
Size: 1,266,688 bytes
Time from start: 0 hours 0 mins 13 secs
Error occurred at: 08/06/08, 09:15:20
Error description: Error ADODB.connection/9 Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 14
IF: EXECUTE
Args:
[ 1] = C CREATE TABLE IF NOT EXISTS ESTOQUE( RECNO INT NOT NULL AUTO_INCREMENT,ESTOQUE CHAR(18),n2 INT(9),n3 DOUBLE(9,6),n4 DOUBLE(9,2) PRIMARY KEY(RECNO) )

Stack Calls
===========
Called from TOLEAUTO:EXECUTE(0)
Called from ADOEXECUTE(556)
Called from CUSTOMER(112)

System
======
CPU type: Pentium III 1500 Mhz
Hardware memory: 448 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Compiler version: xHarbour build 0.99.50 Intl. (SimpLex)
Windows version: 5.1, Build 2600 Service Pack 2

Windows total applications running: 0

Variables in use
================
Procedure Type Value
==========================
TOLEAUTO:EXECUTE
Param 1: C "CREATE TABLE IF NOT EXISTS ESTOQUE( RECNO INT NOT NULL AUTO_INCREMENT,ESTOQUE CHAR(18),n2 INT(9),n3 DOUBLE(9,6),n4 DOUBLE(9,2) PRIMARY KEY(RECNO) )"
ADOEXECUTE
Param 1: C "CREATE TABLE IF NOT EXISTS ESTOQUE( RECNO INT NOT NULL AUTO_INCREMENT,ESTOQUE CHAR(18),n2 INT(9),n3 DOUBLE(9,6),n4 DOUBLE(9,2) PRIMARY KEY(RECNO) )"
CUSTOMER
Local 1: C "FIREBIRD"

Linked RDDs
===========
DBF
DBFNTX
ADORDD

DataBases in use
================

Classes in use:
===============
1 HBCLASS
2 HBOBJECT
3 TWINDOW
4 TDIALOG
5 TBRUSH
6 TFONT
7 TOLEAUTO
8 ERROR

Memory Analysis
===============
132 Static variables

Dynamic memory consume:
Actual Value: 505651 bytes
Highest Value: 524467 bytes
Responder