Página 1 de 1
AdoXb
Enviado: 03 Ago 2008 12:03
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
Re: AdoXb
Enviado: 03 Ago 2008 13:06
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
Re: AdoXb
Enviado: 03 Ago 2008 13:32
por jose hilton
Oi Rodrigo
Eu estou usando o Firebird
Re: AdoXb
Enviado: 03 Ago 2008 21:12
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.
Re: AdoXb
Enviado: 04 Ago 2008 13:44
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
Re: AdoXb
Enviado: 04 Ago 2008 23:08
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.
Re: AdoXb
Enviado: 05 Ago 2008 09:19
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