Como sair deste problema

Delphi

13/03/2006

Caros colegas

Uso D7 -DBExpress - Firebird 1.5.x

Meu problema:
Tenho uma tabela com campo numérico (NUMERIC 9,2).

Este Campo Vem para o CDS no DM como Sendo TFMTBCDField.

Este Campo no CDS na sua propriedade DisplayFormat := ,#0.00

Junto ao Formulário insiro um DBEdit preencho suas propriedades DataField com este campo.
Este Campo ao ser digitado com inteiro/fração tipo 15,30 e ao ser ´postado´ da a seguinte mensagem - ´15,30 is not a valid BCD Value´

A pergunda é ´ e ai como sair desta!´

Agradeço antecipadamente pela ajuda.
Sds/Hélio


Helio Nascimento

Helio Nascimento

Curtidas 0

Respostas

Edilcimar

Edilcimar

13/03/2006

na formatação vc colocou ponto como separador decimal, e a resposta de que o número não está correto está usando vírgula, veja as configurações regionais


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Edicilmar

Minhas Config.Regionais esta com Virgula. Fiz a alteração mencionada,mas não surtiu efeito. No DM before post := dm1.cds_requisicaoVALOR.ASCurrency:= StrToCurr(FrmFichaVales.DBEdit2.Text) - Não deu certo. Continua com a mesma mensagem de erro. O Estralho é que no Evento OnChange do DBEdit2 não há tratamento quanto à digitação de ponto ou virgula mas, ao inserir um numero com decimal não se consegue digitar o ponto, somente com virgula - tipo 33,20 . Não aceita a entrada com 33.20. Agora se Vc coloca um numero inteiro do tipo 33 e muda o foco para outro campo ai subscreve este DBEdit como sendo 33.00. ai voce volta no campo com o mouse e apaga o backspace os digitos dos centavos e coloca um numero e manda postar ai ele aceita. Faz o post e o Applyupdates normalmente.
Bem.. continuo aceitando sugestões. Faço também uma pergunta e voces como procedem com campos do tipo numeric(9,2) em seus formulários??

Saudações a todos/Hélio


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

continuo aceitando sugestões.


[b:66f0dbbb3d]Então la vai....[/b:66f0dbbb3d]

O Estralho é que no Evento OnChange do DBEdit2 não há tratamento quanto à digitação de ponto ou virgula mas, ao inserir um numero com decimal não se consegue digitar o ponto,


isto é devido as suas configuraçoes Regionais... A sua Configuração regional esta com virgula como separador de casas decimais...Portanto entradas diferentes de virgulas não são aceitas..Também entradas com letras não são aceitas e voce não tem nenhum tratamento em relação a isto...Mas isto ja vem desde do Paradox , onde um campo definido como Currency , não recebe letras como dado de entradas

Não aceita a entrada com 33.20.
.
Isto é extremamente Normal , devido ao explicado anteriormente

Agora se Vc coloca um numero inteiro do tipo 33 e muda o foco para outro campo ai subscreve este DBEdit como sendo 33.00.

Isto ai não é normal...Mesmo que a mascara esteja com intenção de Ponto para separar os decimais , as configurçoes regionais Deveriam prevalecer..
:cry: :cry:
[b:66f0dbbb3d]Não consegue reproduzir no Meu PC , usando a sua mascara com um campo numerico definido da mesma forma , a situção que voce descreveu[/b:66f0dbbb3d]

Voce tem certeza desta situação ???? :arrow: Poderia arrriscar um palpite sobre o Dialeto ou a Languagem na hora de cosntruir o Banco , mas isto so seria um palpite.. Primeiro devemos esgotar outras linhas de raciocineo


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

continuo aceitando sugestões.


[b:6c1a18a959]Então la vai....[/b:6c1a18a959]

O Estralho é que no Evento OnChange do DBEdit2 não há tratamento quanto à digitação de ponto ou virgula mas, ao inserir um numero com decimal não se consegue digitar o ponto,


isto é devido as suas configuraçoes Regionais... A sua Configuração regional esta com virgula como separador de casas decimais...Portanto entradas diferentes de virgulas não são aceitas..Também entradas com letras não são aceitas e voce não tem nenhum tratamento em relação a isto...Mas isto ja vem desde do Paradox , onde um campo definido como Currency , não recebe letras como dado de entradas

Não aceita a entrada com 33.20.
.
Isto é extremamente Normal , devido ao explicado anteriormente

Agora se Vc coloca um numero inteiro do tipo 33 e muda o foco para outro campo ai subscreve este DBEdit como sendo 33.00.

Isto ai não é normal...Mesmo que a mascara esteja com intenção de Ponto para separar os decimais , as configurçoes regionais Deveriam prevalecer..
:cry: :cry:
[b:6c1a18a959]Não consegue reproduzir no Meu PC , usando a sua mascara com um campo numerico definido da mesma forma , a situção que voce descreveu[/b:6c1a18a959]

Voce tem certeza desta situação ???? :arrow: Poderia arrriscar um palpite sobre o Dialeto ou a Languagem na hora de cosntruir o Banco , mas isto so seria um palpite.. Primeiro devemos esgotar outras linhas de raciocineo


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

continuo aceitando sugestões.


[b:ead9b62a04]Então la vai....[/b:ead9b62a04]

O Estralho é que no Evento OnChange do DBEdit2 não há tratamento quanto à digitação de ponto ou virgula mas, ao inserir um numero com decimal não se consegue digitar o ponto,


isto é devido as suas configuraçoes Regionais... A sua Configuração regional esta com virgula como separador de casas decimais...Portanto entradas diferentes de virgulas não são aceitas..Também entradas com letras não são aceitas e voce não tem nenhum tratamento em relação a isto...Mas isto ja vem desde do Paradox , onde um campo definido como Currency , não recebe letras como dado de entradas

Não aceita a entrada com 33.20.
.
Isto é extremamente Normal , devido ao explicado anteriormente

Agora se Vc coloca um numero inteiro do tipo 33 e muda o foco para outro campo ai subscreve este DBEdit como sendo 33.00.

Isto ai não é normal...Mesmo que a mascara esteja com intenção de Ponto para separar os decimais , as configurçoes regionais Deveriam prevalecer..
:cry: :cry:
[b:ead9b62a04]Não consegue reproduzir no Meu PC , usando a sua mascara com um campo numerico definido da mesma forma , a situção que voce descreveu[/b:ead9b62a04]

Voce tem certeza desta situação ???? :arrow: Poderia arrriscar um palpite sobre o Dialeto ou a Languagem na hora de cosntruir o Banco , mas isto so seria um palpite.. Primeiro devemos esgotar outras linhas de raciocineo


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

continuo aceitando sugestões.


[b:e285de0fd1]Então la vai....[/b:e285de0fd1]

O Estralho é que no Evento OnChange do DBEdit2 não há tratamento quanto à digitação de ponto ou virgula mas, ao inserir um numero com decimal não se consegue digitar o ponto,


isto é devido as suas configuraçoes Regionais... A sua Configuração regional esta com virgula como separador de casas decimais...Portanto entradas diferentes de virgulas não são aceitas..Também entradas com letras não são aceitas e voce não tem nenhum tratamento em relação a isto...Mas isto ja vem desde do Paradox , onde um campo definido como Currency , não recebe letras como dado de entradas

Não aceita a entrada com 33.20.
.
Isto é extremamente Normal , devido ao explicado anteriormente

Agora se Vc coloca um numero inteiro do tipo 33 e muda o foco para outro campo ai subscreve este DBEdit como sendo 33.00.

Isto ai não é normal...Mesmo que a mascara esteja com intenção de Ponto para separar os decimais , as configurçoes regionais Deveriam prevalecer..
:cry: :cry:
[b:e285de0fd1]Não consegue reproduzir no Meu PC , usando a sua mascara com um campo numerico definido da mesma forma , a situção que voce descreveu[/b:e285de0fd1]

Voce tem certeza desta situação ???? :arrow: Poderia arrriscar um palpite sobre o Dialeto ou a Languagem na hora de cosntruir o Banco , mas isto so seria um palpite.. Primeiro devemos esgotar outras linhas de raciocineo


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

Senhores moderadores , estava dando erro na emissão da mensagem ,por isso a minha insistencia na postagem. So o que eu não sabia, era que elas estavam sendos enviadas . Portanto para não confudir a leitura do tópico , se puderem fazer o favor de deletar as redundantes ficaria melhor na leitura do referido


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Marco Salles.

Obrigado p/sua atenção.
Qto. ao Dialeto é 3 o Campo REQ_VALOR foi definido com um DOMINIO
Numeric(9,2). Resta-me criar este campo sem utilizar o DOMINIO e sim diretamente. Vou tentar o Resto... tudo certo. Também estou quase partindo para substituir o DBEdit por um Edit - Fazer o Tratamento na digitação para permissao de Key in[´0...9´, tecla backspace, enter, virgula] e no DM no
before post fazer a conversão para ASCURRENCY TANTO O CAMPO QUANTO AO EDIT.TEXT e ver se passa. Sei lá vou ver... caso vc. tenha algo diferente por favor me poste.

Obrigado e até breve/Hélio


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

o que esta pegando é isso

Agora se Vc coloca um numero inteiro do tipo 33 e muda o foco para outro campo ai subscreve este DBEdit como sendo 33.00.


eu continuio achando que pode ser na construção do Banco.. Dialeto , PageSize e Charset.. Infelismente eu não sou a pessoa mais indicada para separar criteriosamente cada tipo de definição

Voce sabe como foi definido o seu PageSize e o seu Charset ???

Para que eu possa temtar simular este possivel ´erro´ aqui...

Também estou quase partindo para substituir o DBEdit por um Edit - Fazer o Tratamento na digitação para permissao de Key in[´0...9´, tecla backspace, enter, virgula] e no DM no before post fazer a conversão para ASCURRENCY TANTO O CAMPO QUANTO AO EDIT.TEXT e ver se passa. Sei lá vou ver... caso vc. tenha algo diferente por favor me poste.


Acho ainda cedo para tal...


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

eu continuio achando que pode ser na construção do Banco.. Dialeto , PageSize e Charset.. Infelismente eu não sou a pessoa mais indicada para separar criteriosamente cada tipo de definição

Voce sabe como foi definido o seu PageSize e o seu Charset ???

Para que eu possa temtar simular este possivel "erro" aqui...


PageSize - 4.096 - Charset - Win1252 - Dialeto 3 - Banco FireBird 1.5
Linguagem D7

Marcos vc pediu ... aí está .

Até breve./Hélio


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

PageSize - 4.096 - Charset - Win1252 - Dialeto 3 - Banco FireBird 1.5 Linguagem D7


é a mesma que eu estou usando... A unica diferença é que voce tem um DataModulo e eu não .. Outra diferença , eu não sei porque , talves seje por cauda do DataModule o meu tipo definido para o CDS é o TBCDField. e nao o TFMTBCDField que voce definiu no inicio

:?: :?: :?: :?:


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

é a mesma que eu estou usando... A unica diferença é que voce tem um DataModulo e eu não .. Outra diferença , eu não sei porque , talves seje por cauda do DataModule o meu tipo definido para o CDS é o TBCDField. e nao o TFMTBCDField que voce definiu no inicio


Marcos é talvez seja por aí mesmo. Bom outro jeito é Destruir os componentes do DBExpress - o Trio -TSQLDataSet -TDataSetProvider e TClientDataSet. Refazer a sentença SQL no TSQLDataSet e por ai afora.
Ver se em vez de Vir o TFMTBCDFiel vem o TBCDField - Irei fazer isto e tão logo eu faça posto aqui o resultado ok.

Até breve/Obrigado por me acompanhar nesta ´Escuridão´...


GOSTEI 0
Martins

Martins

13/03/2006

[quote:b58e6533c8=´Marco Salles´]
PageSize - 4.096 - Charset - Win1252 - Dialeto 3 - Banco FireBird 1.5 Linguagem D7


é a mesma que eu estou usando... A unica diferença é que voce tem um DataModulo e eu não .. Outra diferença , eu não sei porque , talves seje por cauda do DataModule o meu tipo definido para o CDS é o TBCDField. e nao o TFMTBCDField que voce definiu no inicio

:?: :?: :?: :?:[/quote:b58e6533c8]

Fiz testes com DataModule e sem DataModule e não tive problema algum, usando Cds, só q o tipo de campo definido foi [b:b58e6533c8]TBCDField[/b:b58e6533c8] e não [color=red:b58e6533c8][b:b58e6533c8]TFMTBCDField[/b:b58e6533c8][/color:b58e6533c8]

Mas não usei Delphi 7, tem isso tb, usei D6.

Espero q alguém descubra a solução.


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Caro Martins

Estamos nesta caminhada. Como Disse acima fui no sistema e deletei o trio ja citado anteriormente. Coloquei novos componentes da palheta. Refiz tudo o campo REQ_VALOR vem como sendo TFMTBCDField . Então fui no Banco de Dados e Delete este campo e troquei o por FLOAT. Deletei no SQLDataSet e mandei e adicionei novamente. Eis que vem o famigerado TFMTBCDField. Bem deletei. Repeti os passos novamente com outro tipo como Sendo DOUBLE PRECISION e... eis que também vem com TFMTBCDField. Refiz tudo novamente e ai substitui por DECIMAL(9,2), e.... também vem como TFMTBCDField. bem.. todos os tipos do FireBird para vem com este formato. ai eu pergunto e ai... ´Como sair deste problema... ´ Ainda não tentei substituir o DBEdit por Edit e fazer o tratamento da entrada de dados e ver se consigo convertê-lo para o Tal BCD e fazer com que este valor consiga entrar no ´óvulo´ do Fire.

Para aqueles que me acompanham .. o meu muito obrigado pela caminhada até breve.../hélio


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

13/03/2006

quando vc refez todos esses passos (excluir componentes, excluir e incluir novamente os campos) você fechou a conexão com o banco de dados e abriu novamente?

se não fez, tente...

- feche a conexão com o banco de dados (o SQLConnection).
- exclua os campos persistentes
- pelo seu administrador de banco de dados (IBConsole, IBExpert), confirme se o campo está como numeric ou float
- volte ao Delphi a refaça a conexão com o banco de dados
- persista os campos

e boa sorte!


GOSTEI 0
Martins

Martins

13/03/2006

quando vc refez todos esses passos (excluir componentes, excluir e incluir novamente os campos) você fechou a conexão com o banco de dados e abriu novamente? se não fez, tente... - feche a conexão com o banco de dados (o SQLConnection). - exclua os campos persistentes - pelo seu administrador de banco de dados (IBConsole, IBExpert), confirme se o campo está como numeric ou float - volte ao Delphi a refaça a conexão com o banco de dados - persista os campos e boa sorte!


Isso mesmo, outra coisa, vc conegue inserir os dados normalmente pelo IbExpert?


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Caros colegas
Resolvi o problema desta forma: Com o nosso velho e bom Edit. Não teve jeito até agora. Fiz de tudo no Formulario e DModule. Eis o meu algoritimo: 1- Substitui o DBEdit por um Edit 2- Fiz o Tratamento da Entrada de Dados neste Edit para aceitar somente números de 0..9 - tecla Blackspace, a Tecla Enter, a Tecla da Virgula. 3- No Evento OnChange do Edit1 ficou assim begin if DtSrc.DataSet.Active then if not(DtSrc.DataSet.State in [dsInsert,dsEdit]) then DtSrc.DataSet.Edit; end; 4- No Data Modulo (DM) No Evento Before Post : dm1.cds_requisicaoREQ_VALOR.AsVariant := FrmFichaVales.Edit.Tex; 5- Não aceita ou tipo de conversão a não ser o Variant. 6- No BD é gravado 33,20 e esta como Numeric(9,2). 7- Quando eu recupero o Registro faço a entrada Manual no Edit1.Text Edit1.Text:= Format(´¬m´,[dm1.cds_RequisicaoREQ_VALOR.AsCurrency]); 8-Se utilizar outro formato de conversão - que não seja AsCurrency, não aceita ´dá pau´. 9 - Bem por ora é somente isto. Se alguem tiver uma outra solução, por favor sinta-se a vontade para informar-nos. Para todos um abraço/Obrigado pela companhia./Hélio



GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Caros colegas
Resolvi o problema desta forma: Com o nosso velho e bom Edit. Não teve jeito até agora. Fiz de tudo no Formulario e DModule. Eis o meu algoritimo: 1- Substitui o DBEdit por um Edit 2- Fiz o Tratamento da Entrada de Dados neste Edit para aceitar somente números de 0..9 - tecla Blackspace, a Tecla Enter, a Tecla da Virgula. 3- No Evento OnChange do Edit1 ficou assim begin if DtSrc.DataSet.Active then if not(DtSrc.DataSet.State in [dsInsert,dsEdit]) then DtSrc.DataSet.Edit; end; 4- No Data Modulo (DM) No Evento Before Post : dm1.cds_requisicaoREQ_VALOR.AsVariant := FrmFichaVales.Edit.Tex; 5- Não aceita ou tipo de conversão a não ser o Variant. 6- No BD é gravado 33,20 e esta como Numeric(9,2). 7- Quando eu recupero o Registro faço a entrada Manual no Edit1.Text Edit1.Text:= Format(´¬m´,[dm1.cds_RequisicaoREQ_VALOR.AsCurrency]); 8-Se utilizar outro formato de conversão - que não seja AsCurrency, não aceita ´dá pau´. 9- No evento OnKeyPress ficou assim: procedure TFrmFichaVales.Edit1KeyPress(Sender: TObject; var Key: Char); begin inherited; if(not (Key in [´0´..´9´,#13,9,8])) then Key := 0; end; 10 - Bem por ora é somente isto. Se alguem tiver uma outra solução, por favor sinta-se a vontade para informar-nos. Para todos um abraço/Obrigado pela companhia./Hélio



GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Caros amigos Emerson.en e Martins

Enquanto vcs. me respondiam estava fazendo outro montando a outra solucao, quando voltei aqui vc. ja haviam postado. Vou Fazer o que recomedam e volto em breve com uma resposta. Apesar de estar funcionando com o Edit conforme postei, mas o certo é certo e errado as vezes é certo e as vezes não é . É muito deselegante o coitado do DBEdit perder a parada para o o Seu primo ou irmão sei Edit. Não é mesmo.
Volto breve

Até daqui a pouco.


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Emerson.en e Martins

Fiz conforme descrito.

Voltou a dar o mesmo Formato TFMTBCDField. e apresentando as mesmas conseqüencias retro descritas.
Estou com uma solução (Temporária?/Definitiva!) conforme postei anteriormente. Estou ´ligado´ em outras soluções o ´paciente´ está firme com o Edit.

Sds/Hélio


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

xiiiiiiiiiiii

Igual ao seu problema

http://forum.clubedelphi.net/viewtopic.php?t=11131&highlight=tfmtbcdfield+dbexpress

Alguns topicos relacionado a este tipo de Dados , mandam efetuar uma configuração no Banco

Faça uma pesquisa sobre TFMTBCDField e comprove... E sempre o mesmo tipo de erro...

Ainda bem que o meu delphi nunca declarou um tipo assim..heheheheh


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

xiiiiiiiiiiii

Igual ao seu problema

http://forum.clubedelphi.net/viewtopic.php?t=11131&highlight=tfmtbcdfield+dbexpress

Alguns topicos relacionado a este tipo de Dados , mandam efetuar uma configuração no Banco

Faça uma pesquisa sobre TFMTBCDField e comprove... E sempre o mesmo tipo de erro...

Ainda bem que o meu delphi nunca declarou um tipo assim..heheheheh


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

Helio , voce talvez nen tenha lido sobre um tópico e estou lhe enviando outro ..

Olhe so o que achei

Nesse topico

http://forum.clubedelphi.net/viewtopic.php?t=11131&highlight=tfmtbcdfield+dbexpress

No ´AfterConnect´-Event: SQLConnection.Execute(´alter session set NLS_NUMERIC_CHARACTERS=´´.,´´´, NIL,NIL);


Eu não sei se esto funciona ..

Noutro tópico o cara dis

http://forum.clubedelphi.net/viewtopic.php?t=28027&highlight=tfmtbcdfield+dbexpress


já consegui resolver o problema. setei a variável de ambietne LC_NUMERIC para en_US. (export LC_NUMERIC=en_US) Isso diz que o padrão de números do ambiente é separado por . e não por , .


O problema é que ele não diz aonde faz isto... :cry: :cry: :cry:

Mas ja da para perceber que voce não é o unico


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Caro Marco Salles

Agradeço pela sua gentileza de fazer a pesquisa, e interagir comigo e aos demais que estao em modo de leitura. Mais tarde farei os testes com o que foi abordados nos dois tópicos e breve faço a comunicação sobre meus resultados. Estamos no covil sendo assistido por milhares. Mas venceremos este danado do delphi-dbexpress - firebird - conecção e por ai. Sempre há uma solução. Tem que batalhar ai é que fica o lado bom do programador. Um verdadeiro serviçal à mercê de outros que acham que qualquer input é um programinha qualquer ,mas nao sabe nos bastidores o que sofremos por querer fazer esta maquina (burra) entender o que queremos que ela faça e bem feito.Até breve caro amigo.

Saudações/Hélio


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Caro Marco Salles

Fiz o Teste. Não passa. Não entende o que é ´session´ Depois de ler estes tópicos são para bancos de dados do ORACLE talvez o nosso amigo EMERSON.EN possa traduzí-lo para o nosso FIREBIRD, que sabe dá certo.

Ok até breve!/Hélio


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

Pode ser do Oracle .. Mas da para perceber que ta meio casca brava .. Ta dando muito erro

Mas eu continuio pesquisando , porque o seu erro de hoje pode ser o meu de amanha

Pergunta que eu faço :::

[b:6690a1c2a9]Voce disse que esta usando O Firibird com o DbExpress
Mas qual o Driver de conexão que voce esta usando ????[/b:6690a1c2a9]


GOSTEI 0
Martins

Martins

13/03/2006

[quote:ad9f263f83=´Marco Salles´]Pode ser do Oracle .. Mas da para perceber que ta meio casca brava .. Ta dando muito erro

Mas eu continuio pesquisando , porque o seu erro de hoje pode ser o meu de amanha

Pergunta que eu faço :::

[b:ad9f263f83]Voce disse que esta usando O Firibird com o DbExpress
Mas qual o Driver de conexão que voce esta usando ????[/b:ad9f263f83][/quote:ad9f263f83]

Interessante essa pergunta.

não sei se ajuda, mas dê uma olhada nesse link.

[url]http://qc.borland.com/wc/qcmain.aspx?d=2711[/url]

Coloque aqui o DDL de sua base por favor!


GOSTEI 0
Martins

Martins

13/03/2006

Um outro fato interessante é q esse campo [color=darkblue:f7801e9087][b:f7801e9087]TFmtBCDField[/b:f7801e9087][/color:f7801e9087] é colocado automaticamente, mas isso só parece ocorrer apartir do Delphi 7, ou estou enganado?


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

Um outro fato interessante é q esse campo TFmtBCDField é colocado automaticamente, mas isso só parece ocorrer apartir do Delphi 7, ou estou enganado?


Pelo que pesquisei ate agora ele é colocado automaticamente , porem depende do valor definido pelo precision.. Asiim para cada par de definição é colocado ou um ou outro

Mas acho tb , que tem change de ser o Drive que ele esta usando para se comunicar com este banco Firibird.. O dive que eu esto ume referindo é aquele definido pela conexão no SqLConnection


GOSTEI 0
Martins

Martins

13/03/2006

[quote:5695b0812c=´Marco Salles´]
Um outro fato interessante é q esse campo TFmtBCDField é colocado automaticamente, mas isso só parece ocorrer apartir do Delphi 7, ou estou enganado?


Pelo que pesquisei ate agora ele é colocado automaticamente , porem depende do valor definido pelo precision.. Asiim para cada par de definição é colocado ou um ou outro

Mas acho tb , que tem change de ser o Drive que ele esta usando para se comunicar com este banco Firibird.. O dive que eu esto ume referindo é aquele definido pela conexão no SqLConnection[/quote:5695b0812c]

vc usa o[b:5695b0812c] dbexpUIBfire15.dll[/b:5695b0812c]?


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Carissimos Martins/Marco Salles

Ai vai o DDL da Tabela envolvida:
/******************************************************************************/
/****              Generated by IBExpert 15/03/2006 06:56:22               ****/
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES WIN1252;



/******************************************************************************/
/****                                Tables                                ****/
/******************************************************************************/



CREATE TABLE REQUISICAO (
    ID_REQUISICAO      DM_INTEGER_PK /* DM_INTEGER_PK = INTEGER NOT NULL CHECK (VALUE > 0) */,
    REQ_DATA           DATAHORA /* DATAHORA = TIMESTAMP DEFAULT ´NOW´ */,
    REQ_NUMERO         STRING10 /* STRING10 = VARCHAR(10) */,
    REQ_REQUERENTE     STRING20 COLLATE PXW_INTL850 /* STRING20 = VARCHAR(20) */,
    REQ_ESTAB_DESTINO  STRING50 COLLATE PXW_INTL850 /* STRING50 = VARCHAR(50) */,
    REQ_MATRICULA      STRING10 COLLATE PXW_INTL850 /* STRING10 = VARCHAR(10) */,
    REQ_ASSOCIADO      STRING60 COLLATE PXW_INTL850 /* STRING60 = VARCHAR(60) */,
    REQ_FORMA_PGTO     CHAR_1 COLLATE PXW_INTL850 /* CHAR_1 = CHAR(1) */,
    REQ_QUEM_AUTORIZA  STRING30 COLLATE PXW_INTL850 /* STRING30 = VARCHAR(30) */,
    REQ_EMITIR_NF      CHAR_1 COLLATE PXW_INTL850 /* CHAR_1 = CHAR(1) */,
    REQ_CANCELADA      CHAR_1 COLLATE PXW_INTL850 /* CHAR_1 = CHAR(1) */,
    REQ_ASSSINADO_POR  STRING25 COLLATE PXW_INTL850 /* STRING25 = VARCHAR(25) */,
    REQ_OBS            DM_BLOB_TEXTO /* DM_BLOB_TEXTO = BLOB SUB_TYPE 1 SEGMENT SIZE 80 */,
    REQ_DESCRICAO      DM_BLOB_TEXTO /* DM_BLOB_TEXTO = BLOB SUB_TYPE 1 SEGMENT SIZE 80 */,
    REQ_TIPO           CHAR_2 COLLATE PXW_INTL850 /* CHAR_2 = CHAR(2) */,
    REQ_LITROS         SMALLINT,
    REQ_PARCELAS       SMALLINT,
    REQ_VALOR          SALDO /* SALDO = NUMERIC(18,2) DEFAULT 0.0 */
);




/******************************************************************************/
/****                             Primary Keys                             ****/
/******************************************************************************/

ALTER TABLE REQUISICAO ADD CONSTRAINT PK_REQUISICAO PRIMARY KEY (ID_REQUISICAO);


/******************************************************************************/
/****                              Privileges                              ****/
/******************************************************************************/


Quanto ao Driver Utilizada o Interbase com GDS32.DLL - Mudei para o Driver para o dbexpUIBfire15.dll e com GDS32.DLL - Continuou com o mesmo problema. Substitui a GDS32.DLL por FBCLIENT.DLL. - Idem ao mesmo problema.

Agora ´Durmam com um barulho deste´ ... em Casa ontem a noite levei o famigerado ´Fontes´ e ´soltei´ no meu modesto PC - com o XP instalado,
e fiz os testes. - P A S M E M !!! - Não deu problemas ! - Deslizou como uma Bailarina. Consegui cadastrar com 32,20 e com somente 0,20.
Não houve nada - nem quando compilava e nem quando executava. Tudo as mil maravilhas utilizado o nosso DBEdit. Retornei hoje e vi este ´posts´ de voces aos quais estou respondendo e.. com o mesmo fonte de casa coloquei aqui e... compilei/linkei e... deu pau. O Executavel que gerei em casa esta rodando aqui tudo bem, com a mesma base. É ou não para voce ficar doido!!. Estas máquinas ainda me levam para um hospício!.
Sds/Helio


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

é para ficar doido ...

Mas segue aqui tres perguntas.. Porque acho que voce ainda não me respondeu

Quanto ao Driver Utilizada o Interbase com GDS32.DLL -

Eu acho que esta errado...
1)Voce fez algum Download para ter um Driver especifico para acessar o firibird usando o DbExpress ?????

Mas quando eu falei em driver , quiz dizer o Driver de conexão do SqlConnetion .... Na propriedade conncetionName ????

dbexpUIBfire15.dll é o nome da Library Name que é configurara automaticamente pelo componente assim que voce define o Driver de conexão na propriedade conncetionName..Eu não entendo como voce no SqlConecction pode atribuir manualmente ´Nomes´ para a Library Nome e Para o VendorLibrary...

2)Na propriedade NameConnection , qual foi o Driver que vopce definiu :?: :?: Note que quando se da dois clicks no Componente se tem por padrão vários drives(IBconnection ,DB2Connection
OracleConnection , etc...)


3)E outra.. Voce por acaso deve a curiosidade de Ver na sua casa se o Tfield É do mesmo tipo TFMTBCDField. ????


GOSTEI 0
Martins

Martins

13/03/2006

:shock:

Cara que louco!!!

O [b:82d8a2e52c]Marco Salles[/b:82d8a2e52c] está querendo saber o q vc informou em [b:82d8a2e52c]Driver Name[/b:82d8a2e52c] do componente [color=darkblue:82d8a2e52c][b:82d8a2e52c]SQLConnection[/b:82d8a2e52c][/color:82d8a2e52c],

Um fato curioso é que se vc compilar em seu PC e levar para o seu Cliente ou trabalho funciona, e lá vc tem a mesma versão do Delphi, com a mesma versão do SO e as config. tanto do SO quando do Delphi são as mesmas ou mais próximas possíveis?


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Caros amigos.
Desculpe-me pela demora é que o bicho pegou agora e não tive tempo de responder-lhes

Quanto ao Driver no SQL Connection abaixo segue o Link daqui mesmo

[url]https://www.devmedia.com.br/visualizaComponente.aspx?comp=971&site=3[/url]

foi o que fiz este artigo do Luciano Pimenta.

3)E outra.. Voce por acaso deve a curiosidade de Ver na sua casa se o Tfield É do mesmo tipo TFMTBCDField. ????


Sim em casa tambem é criado o famigerado TFMTBCDField. Tudo acontece em casa acontece por aqui. Só que aqui da pau lá não !!!!!!

Até Breve /Hélio


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

é amigo..

Botei a culpa no
Dialeto
Languagem
PageSize
Charset
Drive de Conexão

Tudo que voce esta fazendo esta igual ao meu e acredito igual ao do martins..

[b:9966603717]Nen sen voce fizer uma copia do seu Projeto da sua casa e instalar este Projeto feito na sua casa ai no Pc Que esta dando Problema , Não Funciona??????[/b:9966603717]

Porque se nesse caso não funcionar , acho que não estarei doido em creditar alguma culpa no Sistema Operacional :!:
Alguem tem que levar a culpa :lol: E por falar em Sistema , qual é o da sua casa e qual é o seu (Que esta dando Errado)


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Marco Salles

Respondendo...
Porque se nesse caso não funcionar , acho que não estarei doido em creditar alguma culpa no Sistema Operacional Exclamation Alguem tem que levar a culpa Laughing E por falar em Sistema , qual é o da sua casa e qual é o seu (Que esta dando Errado)


Tanto na empresa quanto em minha casa o Sistema Operacional é Windows XP

Sds/Hélio


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

Tanto na empresa quanto em minha casa o Sistema Operacional é Windows XP


Respondeu uma meu amigo , mas a outra que é minha ultima tentativa de entender e fazer conjuturas:

[b:6980391c5f]Nen sen voce fizer uma copia do seu Projeto da sua casa e instalar este Projeto feito na sua casa ai no Pc Que esta dando Problema , Não Funciona?????? [/b:6980391c5f]
Eu não estou falando só do executavel não .. O executável voce ja disse que roda sem problemas ,, Eu to falando de trazer o projeto feito na suua casa e compila-lo ai na sua empresa (Acredito que deva ser a mesma versão do delphi).. Nen assim funciona


GOSTEI 0
Helio Nascimento

Helio Nascimento

13/03/2006

Marco Sallles

Pois é foi assim mesmo que fiz . Trouxe o *.exe que fiz em casa. Rodou na Empresa normalmente sem problemas de Mensagens. Porém Necessitei de alterar algo e aí aqui na empresa com os fontes gerados em minha casa, deu pau novamente com o mesmo problema que originou toda esta discursão.

È ou não é para vc. ficar doido? // Nas duas máquinas em casa e aqui na empresa são os mesmos sistemas operacionais no caso XP e o Delphi é o mesmo sem tirar nem por tudo que ha em casa quanto a componentes instalados de terceiros , aqui também esta é um cover... A unica coisa diferente sao os processadores e espaços em memoria. Esta maquina da empresa é muito mais nova do que ha que tenho em casa, do resto não muda nada. E portanto não roda. mesmo sem dar pau. Vai ficar assim mesmo rodando no Edit aqui pois não é possível ainda finalizar o sistema pois esta em desenvolvimento.

Até mais../Hélio


GOSTEI 0
Joaoshi

Joaoshi

13/03/2006

Tive problemas deste tipo, era atualização do Delphi.

Espero ter ajudado.


GOSTEI 0
Marco Salles

Marco Salles

13/03/2006

Sabe eu muito das vezes me sinto indignado... Nos simples mortais somos um joguete no meio desta enchorrada de tecnologia.. O Pouco que sabemos se perde na emaralhada trança dos fios que interligam os Sistemas

Falo isto com razão.. Compre um livro novo e vai lher sobre uma tecnologia moderna em contradição com a tecnologia antiga.. Maravilhas da moderna , nada de ruim , ja a antiga foi substituida por causa de enumeras coisas que somente Hoje , depois de não sei la quantos anos se passaram , se falam dessas coisas.. Porque quem criou , não citou esses problemas no Inicio :?: :?: :?: :?:

Hoje a tecnologia é o DbExpress com SqlCliente.. Da vontade de comer o livro , porque so fala bem.. Ja o DBE ninguem quer mais ouvir falar

E os defeitos cabeludos do DbExpress com SqlCliente , Aonde estão ?? Ninguem fala nada.. Nos é que somos os cobaias e futuramente quando vier uma nova tecnologia , ai sim , somente ai , saberemos os defeitos desta Tecnologia

Por fim , depois de mais de dez anos que fora lançado O DBE , somente hoje que descobri , que mesmo que se use o Firibird ou um outro Banco de dados Relacional , o cache em disco sera armazenado na pior forma possivel PARADOX...Isto mesmo , voce queis usar um SGDB paaa se livrar do PARADOX , mas foi enganado.... isto quando se usa o DBE com acesso. Mas mesmo assim , porque isto não foi falado ha mais tempo..

Nos somos as cobais , eo pior que perdemos tempo e a paciencia , fora o nervosimo que nos ficamos :evil: :evil: :evil: :evil: :evil:


GOSTEI 0
Martins

Martins

13/03/2006

Nobre colega, verifique suas configurações regionais, a da sua empresa e da sua casa, imprima ou anote se necessário para fazer um comparativo, veja se os sistemas são da mesma versão, e depois post aqui novamente, OK :!: .


Valew


GOSTEI 0
POSTAR