ACENTO FUNCIONA em INSERT e nao funciona em STORED...
[b:2c8e94e1c3]arithmetic exception, numeric overflow, or string truncation
Cannot transliterate character between character sets. [/b:2c8e94e1c3]
:?:
alo amigos...
tenho um problema..
tipo,
numa stored procedure... nao funciona um insert... com um campo
varchar (acentuado)
estou usando o Charset: WIN1252
COLLATE: PXW_INTL850
no BDE.... LANGDRIVER: Borland PTG Latin-1
ja no INSERT INTO <TABELA> funciona normalmente...
pq??? alguem ja teve esse problema ?
por favor preciso de ajuda..
ah... isso é só na tabela VENDAS, pq nas outras ja testei e correu tudo certo.
segue a procedure:
CREATE PROCEDURE PRC_VENDAS (
SEQUENCIA INTEGER,
NUMERO INTEGER,
DATA DATE,
CODCLI INTEGER,
CLIENTE VARCHAR(50),
VALORUNITARIO DECIMAL(12,2),
VALORTOTAL DECIMAL(12,2),
VALORCUSTO DECIMAL(12,2),
VALORORIGINAL DECIMAL(12,2),
VALORMINIMO DECIMAL(12,2),
LUCRO FLOAT,
ICMS FLOAT,
VENDEDOR VARCHAR(15),
CODPRODUTO VARCHAR(13),
PRODUTO VARCHAR(50),
QTD INTEGER,
NAC VARCHAR(1),
APLICACAO VARCHAR(140),
APLICACAO2 VARCHAR(50),
LOC VARCHAR(10),
TIPO VARCHAR(1),
MECANICO VARCHAR(15),
DATA_FECHAMENTO DATE,
TIPOX CHAR(1))
AS
BEGIN
IF (:TIPOX = ´I´) THEN
BEGIN
INSERT INTO Vendas (Numero,Data,Codcli,Cliente,ValorUnitario,ValorTotal,ValorCusto,ValorOriginal,ValorMinimo,Lucro,ICMS,Vendedor,CodProduto,Produto,Qtd,Nac,Aplicacao,Aplicacao2,Loc,Tipo,Mecanico,Data_Fechamento) VALUES (:Numero,:Data,:Codcli,:Cliente,:ValorUnitario,:ValorTotal,:ValorCusto,:ValorOriginal,:ValorMinimo,:Lucro,:ICMS,:Vendedor,:CodProduto,:Produto,:Qtd,:Nac,:Aplicacao,:Aplicacao2,:Loc,:Tipo,:Mecanico,:Data_Fechamento);
END
IF (:TIPOX = ´A´) THEN
BEGIN
UPDATE Vendas SET Numero = :Numero,Data = :Data,Codcli = :Codcli,Cliente = :Cliente,ValorUnitario = :ValorUnitario,ValorTotal = :ValorTotal,ValorCusto = :ValorCusto,ValorOriginal = :ValorOriginal,ValorMinimo = :ValorMinimo,Lucro = :Lucro,ICMS = :ICMS,Vendedor = :Vendedor,CodProduto = :CodProduto,Produto = :Produto,Qtd = :Qtd,Nac = :Nac,Aplicacao = :Aplicacao,Aplicacao2 = :Aplicacao2,Loc = :Loc,Tipo = :Tipo,Mecanico = :Mecanico,Data_Fechamento = :Data_Fechamento WHERE numero = :numero;
END
IF (:TIPOX = ´D´) THEN
BEGIN
DELETE FROM Vendas WHERE numero = :numero;
END
END
se alguem puder me ajudar
desde ja agradeço muito
té +
Cannot transliterate character between character sets. [/b:2c8e94e1c3]
:?:
alo amigos...
tenho um problema..
tipo,
numa stored procedure... nao funciona um insert... com um campo
varchar (acentuado)
estou usando o Charset: WIN1252
COLLATE: PXW_INTL850
no BDE.... LANGDRIVER: Borland PTG Latin-1
ja no INSERT INTO <TABELA> funciona normalmente...
pq??? alguem ja teve esse problema ?
por favor preciso de ajuda..
ah... isso é só na tabela VENDAS, pq nas outras ja testei e correu tudo certo.
segue a procedure:
CREATE PROCEDURE PRC_VENDAS (
SEQUENCIA INTEGER,
NUMERO INTEGER,
DATA DATE,
CODCLI INTEGER,
CLIENTE VARCHAR(50),
VALORUNITARIO DECIMAL(12,2),
VALORTOTAL DECIMAL(12,2),
VALORCUSTO DECIMAL(12,2),
VALORORIGINAL DECIMAL(12,2),
VALORMINIMO DECIMAL(12,2),
LUCRO FLOAT,
ICMS FLOAT,
VENDEDOR VARCHAR(15),
CODPRODUTO VARCHAR(13),
PRODUTO VARCHAR(50),
QTD INTEGER,
NAC VARCHAR(1),
APLICACAO VARCHAR(140),
APLICACAO2 VARCHAR(50),
LOC VARCHAR(10),
TIPO VARCHAR(1),
MECANICO VARCHAR(15),
DATA_FECHAMENTO DATE,
TIPOX CHAR(1))
AS
BEGIN
IF (:TIPOX = ´I´) THEN
BEGIN
INSERT INTO Vendas (Numero,Data,Codcli,Cliente,ValorUnitario,ValorTotal,ValorCusto,ValorOriginal,ValorMinimo,Lucro,ICMS,Vendedor,CodProduto,Produto,Qtd,Nac,Aplicacao,Aplicacao2,Loc,Tipo,Mecanico,Data_Fechamento) VALUES (:Numero,:Data,:Codcli,:Cliente,:ValorUnitario,:ValorTotal,:ValorCusto,:ValorOriginal,:ValorMinimo,:Lucro,:ICMS,:Vendedor,:CodProduto,:Produto,:Qtd,:Nac,:Aplicacao,:Aplicacao2,:Loc,:Tipo,:Mecanico,:Data_Fechamento);
END
IF (:TIPOX = ´A´) THEN
BEGIN
UPDATE Vendas SET Numero = :Numero,Data = :Data,Codcli = :Codcli,Cliente = :Cliente,ValorUnitario = :ValorUnitario,ValorTotal = :ValorTotal,ValorCusto = :ValorCusto,ValorOriginal = :ValorOriginal,ValorMinimo = :ValorMinimo,Lucro = :Lucro,ICMS = :ICMS,Vendedor = :Vendedor,CodProduto = :CodProduto,Produto = :Produto,Qtd = :Qtd,Nac = :Nac,Aplicacao = :Aplicacao,Aplicacao2 = :Aplicacao2,Loc = :Loc,Tipo = :Tipo,Mecanico = :Mecanico,Data_Fechamento = :Data_Fechamento WHERE numero = :numero;
END
IF (:TIPOX = ´D´) THEN
BEGIN
DELETE FROM Vendas WHERE numero = :numero;
END
END
se alguem puder me ajudar
desde ja agradeço muito
té +
Seven
Curtidas 0
Respostas
Stci
10/09/2003
O arielton.lima, você poderia colocar a estrutura da tabela de vendas, pois o que pode estar acontecendo é que a Estrutura de Stored Procedure não coincida com a da Tabela.
GOSTEI 0
Seven
10/09/2003
a estrutura... tabela: VENDAS
CREATE TABLE VENDAS (
SEQUENCIA INTEGER,
NUMERO INTEGER,
DATA DATE,
CODCLI INTEGER,
CLIENTE VARCHAR(50) COLLATE PXW_INTL850,
VALORUNITARIO DECIMAL(12,2),
VALORTOTAL DECIMAL(12,2),
VALORCUSTO DECIMAL(12,2),
VALORORIGINAL DECIMAL(12,2),
VALORMINIMO DECIMAL(12,2),
LUCRO FLOAT,
ICMS FLOAT,
VENDEDOR VARCHAR(15) COLLATE PXW_INTL850,
CODPRODUTO VARCHAR(13) COLLATE PXW_INTL850,
PRODUTO VARCHAR(50) COLLATE PXW_INTL850,
QTD INTEGER,
NAC VARCHAR(1) COLLATE PXW_INTL850,
APLICACAO VARCHAR(140) COLLATE PXW_INTL850,
APLICACAO1 VARCHAR(50) COLLATE PXW_INTL850,
APLICACAO2 VARCHAR(50) COLLATE PXW_INTL850,
LOC VARCHAR(10) COLLATE PXW_INTL850,
TIPO VARCHAR(1) COLLATE PXW_INTL850,
MECANICO VARCHAR(15) COLLATE PXW_INTL850,
DATA_FECHAMENTO DATE
);
obrigado pela força
CREATE TABLE VENDAS (
SEQUENCIA INTEGER,
NUMERO INTEGER,
DATA DATE,
CODCLI INTEGER,
CLIENTE VARCHAR(50) COLLATE PXW_INTL850,
VALORUNITARIO DECIMAL(12,2),
VALORTOTAL DECIMAL(12,2),
VALORCUSTO DECIMAL(12,2),
VALORORIGINAL DECIMAL(12,2),
VALORMINIMO DECIMAL(12,2),
LUCRO FLOAT,
ICMS FLOAT,
VENDEDOR VARCHAR(15) COLLATE PXW_INTL850,
CODPRODUTO VARCHAR(13) COLLATE PXW_INTL850,
PRODUTO VARCHAR(50) COLLATE PXW_INTL850,
QTD INTEGER,
NAC VARCHAR(1) COLLATE PXW_INTL850,
APLICACAO VARCHAR(140) COLLATE PXW_INTL850,
APLICACAO1 VARCHAR(50) COLLATE PXW_INTL850,
APLICACAO2 VARCHAR(50) COLLATE PXW_INTL850,
LOC VARCHAR(10) COLLATE PXW_INTL850,
TIPO VARCHAR(1) COLLATE PXW_INTL850,
MECANICO VARCHAR(15) COLLATE PXW_INTL850,
DATA_FECHAMENTO DATE
);
obrigado pela força
GOSTEI 0
Stci
10/09/2003
Oi,arielton.lima, qual objeto de conexão você está utilizando, pois eu faço a mesma coisa aqui mas utilizo IBObjects. E funciona muito bem.
Caso você utilize BDE, você deve configurá-lo em
Configuration - Drivers - Native - INTRBASE , o LANGDRIVER com Borland PTG Latin-1 ou Paradox ´intl850´
Caso seja IBX, no componente TIBDatabase adicione na propriedade Params a linha
lc_ctype=WIN1252 ou lc_ctype=ISO8859_1
Caso seja IBOjects, no componente TIB_Connection, coloque na propriedade CharSet = WIN1252.
Me retorne caso não funcione e se você já estiver fazendo isto, caso seja interessante, faça um programinha teste com uma base de dados de exemplo e me envie via email stci@stci.com.br
Fico no aguardo.
Caso você utilize BDE, você deve configurá-lo em
Configuration - Drivers - Native - INTRBASE , o LANGDRIVER com Borland PTG Latin-1 ou Paradox ´intl850´
Caso seja IBX, no componente TIBDatabase adicione na propriedade Params a linha
lc_ctype=WIN1252 ou lc_ctype=ISO8859_1
Caso seja IBOjects, no componente TIB_Connection, coloque na propriedade CharSet = WIN1252.
Me retorne caso não funcione e se você já estiver fazendo isto, caso seja interessante, faça um programinha teste com uma base de dados de exemplo e me envie via email stci@stci.com.br
Fico no aguardo.
GOSTEI 0
Seven
10/09/2003
alo mauricio...
eu uso...
TIBSTOREDPROC
com um... TIBtransaction
conectado a um ... TIBDatabase
eram essas informações??
no BDE tb esta configurado o LANGDRIVER = Borland PTG Latin-1
o estranho é q na tabela de fornecedores usando a mesma
TIBSTOREDPROC (mudando o nome para ´PRC_FORNECEDOR´) da certo.
vou pegar um exemplo e te mandar, ok ?!?!?
muito obrigado pela força
eu uso...
TIBSTOREDPROC
com um... TIBtransaction
conectado a um ... TIBDatabase
eram essas informações??
no BDE tb esta configurado o LANGDRIVER = Borland PTG Latin-1
o estranho é q na tabela de fornecedores usando a mesma
TIBSTOREDPROC (mudando o nome para ´PRC_FORNECEDOR´) da certo.
vou pegar um exemplo e te mandar, ok ?!?!?
muito obrigado pela força
GOSTEI 0