num key automático
Criei um arq. no IBExpert com cod automatico, agora quando compilo o Delphy me dá um erro de conversão para string ´1´, o que estou fazendo de errado?
Smpferr
Curtidas 0
Respostas
Marco Salles
17/10/2007
qual a linha que esta o erro ???
qual o componente de acesso ???
qual a base de dados ????
Acho que as pessoas irão precisar de mais detalhes ???
qual o componente de acesso ???
qual a base de dados ????
Acho que as pessoas irão precisar de mais detalhes ???
GOSTEI 0
Smpferr
17/10/2007
Quando compilo dá esse erro:
Project prjConsultorio.exe raised exception class EOleException with message ´Dynamic SQL Error SQL error code = -303 conversion error from string ´1´ Incompatible column/host variable data type Error Code:249´. Process stopped. Use Step or Run to continue.
Quando eu clico no botão OK ele volta para a linha onde está escrito Application.Run; no programa do prjConsultorio
eu fiz seguindo passo a passo o curso do Luciano, Client/Server até chegar no primeiro cadastro. A única diferença que tem é que o meu cadastro tem 3 campos
codprocedimento - integer - notnull - autoincrem
descricao - varchar - 30 - notnull
valor - numeric - 7,2
Obrigada pela ajuda pois é minha primeira tentativa no Delphy
Project prjConsultorio.exe raised exception class EOleException with message ´Dynamic SQL Error SQL error code = -303 conversion error from string ´1´ Incompatible column/host variable data type Error Code:249´. Process stopped. Use Step or Run to continue.
Quando eu clico no botão OK ele volta para a linha onde está escrito Application.Run; no programa do prjConsultorio
eu fiz seguindo passo a passo o curso do Luciano, Client/Server até chegar no primeiro cadastro. A única diferença que tem é que o meu cadastro tem 3 campos
codprocedimento - integer - notnull - autoincrem
descricao - varchar - 30 - notnull
valor - numeric - 7,2
Obrigada pela ajuda pois é minha primeira tentativa no Delphy
GOSTEI 0
Marco Salles
17/10/2007
voce tem algum parametro definido nesta Sql ????
Como voce definiu esses parametros ???
Como voce definiu esses parametros ???
GOSTEI 0
Smpferr
17/10/2007
Defini no IBExpert (criei as tabelas)
as
begin
if (new.codprocedimento is null) then
new.codprocedimento = gen_id(gen_procedimento_id,1);
end
é isso que vc quer saber?
obrigada pelo esforço de me ajudar e tentar entender o que fiz.
as
begin
if (new.codprocedimento is null) then
new.codprocedimento = gen_id(gen_procedimento_id,1);
end
é isso que vc quer saber?
obrigada pelo esforço de me ajudar e tentar entender o que fiz.
GOSTEI 0
Paulo
17/10/2007
Sem parte dos códigos onde está o erro, fica difícil ajudar, mas parece que você está tentando converte uma String em outro tipo que não aceita o formato, ex:
Tenho essa string:´0.1´ se eu der um cast para Float, eu converto, mas se for para integer, vai dar erro de conversão. Agora se você postar os códigos onde o erro está acontecendo, aí fica mais fácil, e de repente nem é isso o que eu falei, mas só vendo. Posta aí...
Tenho essa string:´0.1´ se eu der um cast para Float, eu converto, mas se for para integer, vai dar erro de conversão. Agora se você postar os códigos onde o erro está acontecendo, aí fica mais fácil, e de repente nem é isso o que eu falei, mas só vendo. Posta aí...
GOSTEI 0
Smpferr
17/10/2007
unit uProcedimento;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uBase, DB, ImgList, ActnList, StdCtrls, Buttons, Mask, DBCtrls;
type
TfrmProcedimento = class(TfrmBase)
Label1: TLabel;
dbcodprocedimento: TDBEdit;
Label2: TLabel;
dbDescricao: TDBEdit;
Label3: TLabel;
dbTempoPrevisto: TDBEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmProcedimento: TfrmProcedimento;
implementation
uses uDM;
{$R *.dfm}
end.
unit uDM;
interface
uses
SysUtils, Classes, DBXpress, DB, SqlExpr, FMTBcd, DBClient, Provider;
type
TDM = class(TDataModule)
Conexao: TSQLConnection;
sdtSenha: TSQLDataSet;
sdtSenhaSENHADENTISTA: TIntegerField;
sdtSenhaAPELIDO: TStringField;
dspSenha: TDataSetProvider;
cdsSenha: TClientDataSet;
sdtProcedimento: TSQLDataSet;
sdtDentista: TSQLDataSet;
sdtPaciente: TSQLDataSet;
dspProcedimento: TDataSetProvider;
sdtProcedimentoCODPROCEDIMENTO: TIntegerField;
sdtProcedimentoDESCRICAO: TStringField;
sdtProcedimentoTEMPOPREVISTO: TTimeField;
sdtDentistaCODDENTISTA: TIntegerField;
sdtDentistaNOMEDENTISTA: TStringField;
sdtDentistaVALORHORA: TBCDField;
sdtPacienteCODPACIENTE: TIntegerField;
sdtPacienteNOMEPACIENTE: TStringField;
sdtPacienteVALORTRATAMENTO: TBCDField;
dspDentista: TDataSetProvider;
dspPaciente: TDataSetProvider;
cdsProcedimento: TClientDataSet;
cdsDentista: TClientDataSet;
cdsDentistaCODDENTISTA: TIntegerField;
cdsDentistaNOMEDENTISTA: TStringField;
cdsDentistaVALORHORA: TBCDField;
cdsProcedimentoCODPROCEDIMENTO: TIntegerField;
cdsProcedimentoDESCRICAO: TStringField;
cdsProcedimentoTEMPOPREVISTO: TTimeField;
cdsSenhaSENHADENTISTA: TIntegerField;
cdsPaciente: TClientDataSet;
cdsPacienteCODPACIENTE: TIntegerField;
cdsPacienteNOMEPACIENTE: TStringField;
cdsPacienteVALORTRATAMENTO: TBCDField;
sdtAgenda: TSQLDataSet;
dspAgenda: TDataSetProvider;
cdsAgenda: TClientDataSet;
procedure cdsAgendaAfterPost(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
procedure GetAgenda(aid:Integer);
procedure GetProcedimento(aid:Integer);
end;
var
DM: TDM;
implementation
{$R *.dfm}
{ TDM }
procedure TDM.GetAgenda(aid: Integer);
begin
cdsAgenda.Close;
cdsAgenda.Params[0].AsInteger := aid;
cdsAgenda.Open;
end;
procedure TDM.cdsAgendaAfterPost(DataSet: TDataSet);
begin
cdsAgenda.ApplyUpdates(0)
end;
procedure TDM.GetProcedimento(aid: Integer);
begin
cdsProcedimento.Close;
cdsProcedimento.Params[0].AsInteger := aid;
cdsProcedimento.Open;
end;
end.
será que é isso que vc quer? é que eu ainda estou na primeira tela de menu onde eu chamei o primeiro arq. quando fiz o run pra ver a telinha, deu esse erro, ok?
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uBase, DB, ImgList, ActnList, StdCtrls, Buttons, Mask, DBCtrls;
type
TfrmProcedimento = class(TfrmBase)
Label1: TLabel;
dbcodprocedimento: TDBEdit;
Label2: TLabel;
dbDescricao: TDBEdit;
Label3: TLabel;
dbTempoPrevisto: TDBEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmProcedimento: TfrmProcedimento;
implementation
uses uDM;
{$R *.dfm}
end.
unit uDM;
interface
uses
SysUtils, Classes, DBXpress, DB, SqlExpr, FMTBcd, DBClient, Provider;
type
TDM = class(TDataModule)
Conexao: TSQLConnection;
sdtSenha: TSQLDataSet;
sdtSenhaSENHADENTISTA: TIntegerField;
sdtSenhaAPELIDO: TStringField;
dspSenha: TDataSetProvider;
cdsSenha: TClientDataSet;
sdtProcedimento: TSQLDataSet;
sdtDentista: TSQLDataSet;
sdtPaciente: TSQLDataSet;
dspProcedimento: TDataSetProvider;
sdtProcedimentoCODPROCEDIMENTO: TIntegerField;
sdtProcedimentoDESCRICAO: TStringField;
sdtProcedimentoTEMPOPREVISTO: TTimeField;
sdtDentistaCODDENTISTA: TIntegerField;
sdtDentistaNOMEDENTISTA: TStringField;
sdtDentistaVALORHORA: TBCDField;
sdtPacienteCODPACIENTE: TIntegerField;
sdtPacienteNOMEPACIENTE: TStringField;
sdtPacienteVALORTRATAMENTO: TBCDField;
dspDentista: TDataSetProvider;
dspPaciente: TDataSetProvider;
cdsProcedimento: TClientDataSet;
cdsDentista: TClientDataSet;
cdsDentistaCODDENTISTA: TIntegerField;
cdsDentistaNOMEDENTISTA: TStringField;
cdsDentistaVALORHORA: TBCDField;
cdsProcedimentoCODPROCEDIMENTO: TIntegerField;
cdsProcedimentoDESCRICAO: TStringField;
cdsProcedimentoTEMPOPREVISTO: TTimeField;
cdsSenhaSENHADENTISTA: TIntegerField;
cdsPaciente: TClientDataSet;
cdsPacienteCODPACIENTE: TIntegerField;
cdsPacienteNOMEPACIENTE: TStringField;
cdsPacienteVALORTRATAMENTO: TBCDField;
sdtAgenda: TSQLDataSet;
dspAgenda: TDataSetProvider;
cdsAgenda: TClientDataSet;
procedure cdsAgendaAfterPost(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
procedure GetAgenda(aid:Integer);
procedure GetProcedimento(aid:Integer);
end;
var
DM: TDM;
implementation
{$R *.dfm}
{ TDM }
procedure TDM.GetAgenda(aid: Integer);
begin
cdsAgenda.Close;
cdsAgenda.Params[0].AsInteger := aid;
cdsAgenda.Open;
end;
procedure TDM.cdsAgendaAfterPost(DataSet: TDataSet);
begin
cdsAgenda.ApplyUpdates(0)
end;
procedure TDM.GetProcedimento(aid: Integer);
begin
cdsProcedimento.Close;
cdsProcedimento.Params[0].AsInteger := aid;
cdsProcedimento.Open;
end;
end.
será que é isso que vc quer? é que eu ainda estou na primeira tela de menu onde eu chamei o primeiro arq. quando fiz o run pra ver a telinha, deu esse erro, ok?
GOSTEI 0
Marco Salles
17/10/2007
voce tem algum parametro definido nesta Sql ????
Como voce definiu esses parametros ???
pelo visto voce tem parametros :
cdsAgenda.Close;
[b:3818232312][u:3818232312]cdsAgenda.Params[0].AsInteger := aid;[/u:3818232312][/b:3818232312]
cdsAgenda.Open;
como voce definiu esse parametros , ou voce não o definiu ????
GOSTEI 0
Smpferr
17/10/2007
Citação:
cdsAgenda.Close;
cdsAgenda.Params[0].AsInteger := aid;
cdsAgenda.Open;
Isso eu fiz seguindo a aula, mas na Agenda a chave é data + codigo do dentista que é inteiro, então como devo fazer?
obrigada,
cdsAgenda.Close;
cdsAgenda.Params[0].AsInteger := aid;
cdsAgenda.Open;
Isso eu fiz seguindo a aula, mas na Agenda a chave é data + codigo do dentista que é inteiro, então como devo fazer?
obrigada,
GOSTEI 0
Marco Salles
17/10/2007
voce deve clicar na propriedade params do componente
< voce deve estar usando SqlDataSet >
Ira abrir o Editing SqlDataSetParams
Click no Parametro que aparece <caso não aparece nenhum é porque não esta conectado...ai voce vai ter que criar Isto ja é outra História >
[b:93d6dbb192]Altere a Propriedade DataType para Integer[/b:93d6dbb192]
em seguida no ClientDataSet click com o Botão a direita e escolha a
opção FetchParams
< voce deve estar usando SqlDataSet >
Ira abrir o Editing SqlDataSetParams
Click no Parametro que aparece <caso não aparece nenhum é porque não esta conectado...ai voce vai ter que criar Isto ja é outra História >
[b:93d6dbb192]Altere a Propriedade DataType para Integer[/b:93d6dbb192]
em seguida no ClientDataSet click com o Botão a direita e escolha a
opção FetchParams
GOSTEI 0
Smpferr
17/10/2007
Bom dia Marco, acertei todos os Params, mas só que agora não abre para eu poder compilar pra ver se passa ... não consigo entender o que está acontecendo.
obrigada pela força
Sílvia
obrigada pela força
Sílvia
GOSTEI 0
Marco Salles
17/10/2007
O que que não abre ????
GOSTEI 0
Smpferr
17/10/2007
Me desculpe, eu não havia aberto o projeto, só as .pas, mas de qualquer forma compilei e deu o mesmo erro
Project prjConsultorio.exe raised exception class EUIBError with message ´Dynamic SQL Error SQL error code = -303 conversion error from string ´!´ Incompatible column/host vairable data type Error Code:249´. Process stopped. Use Step or Run to continue.
Acho que vou desistir e começar tudo de novo. Sabe, eu fui programadora em Clipper por 18 anos e agora estou tentando programar em Delphi, e vou te falar uma coisa .......... não posso escrever o que estou pensando.
Project prjConsultorio.exe raised exception class EUIBError with message ´Dynamic SQL Error SQL error code = -303 conversion error from string ´!´ Incompatible column/host vairable data type Error Code:249´. Process stopped. Use Step or Run to continue.
Acho que vou desistir e começar tudo de novo. Sabe, eu fui programadora em Clipper por 18 anos e agora estou tentando programar em Delphi, e vou te falar uma coisa .......... não posso escrever o que estou pensando.
GOSTEI 0
Marco Salles
17/10/2007
Acho que vou desistir e começar tudo de novo.
Acho que isto é uma boa solução...
´Se ainda não deu é porque não chegou a Hora´
mas sem compromisso , me responda , voce esta usando
qual o Driver ,
qual o Banco
quais componetes de acesso ??
verifiquei que a mensagem de erro mudou
[u:d14f979b30]1 post?[/u:d14f979b30]
Project prjConsultorio.exe raised exception [b:d14f979b30]class EOleException [/b:d14f979b30]with message ´Dynamic SQL Error SQL error code = -303 conversion error from string[b:d14f979b30] ´1´[/b:d14f979b30] Incompatible column/host variable data type Error Code:249´. Process stopped. Use Step or Run to continue.
para [u:d14f979b30]ultimo Post[/u:d14f979b30]
Project prjConsultorio.exe raised exception [b:d14f979b30]class EUIBError [/b:d14f979b30]with message ´Dynamic SQL Error SQL error code = -303 conversion
error from string [b:d14f979b30]´!´[/b:d14f979b30] Incompatible column/host vairable data type Error Code:249´. Process stopped. Use Step or Run to continue.
porque apareceu o Caracter ´!´ na jogada :?: :?: :?: Este ´!´ foi digitado por voce ???? ..
GOSTEI 0
Smpferr
17/10/2007
Marco, o caracter ´!´ foi digitado por mim na hora de passar para vc. Na realidade é o ´1´.
Estou usando o IBExpert com o Fire 1.5 e o Delphy 7.
Vou assistindo ao curso Client/Server do Luciano, parando e fazendo. Não sei quando que eu faço alguma coisa diferente (adaptando para o que eu quero) achando que está certo, que dá errado. (risos) Hoje estou calma novamente, ontem nem peguei mais de tão zangada comigo mesma, é claro.
Obrigada pela força, mais uma vez, e pela paciencia.
Sílvia
Estou usando o IBExpert com o Fire 1.5 e o Delphy 7.
Vou assistindo ao curso Client/Server do Luciano, parando e fazendo. Não sei quando que eu faço alguma coisa diferente (adaptando para o que eu quero) achando que está certo, que dá errado. (risos) Hoje estou calma novamente, ontem nem peguei mais de tão zangada comigo mesma, é claro.
Obrigada pela força, mais uma vez, e pela paciencia.
Sílvia
GOSTEI 0
Marco Salles
17/10/2007
olhei a parte iii do curso do pimenta e não notei nada de anormal , daquilo que voce disse que fez.. No proprio exemplo do mesmo o parametro é do tipo inteiro...
Acho que voce deve então , verificar com mais atenção a parte II do Curso , que mostra como utilizar o Driver para o Firibird.
Sugiro tb se possivel for fazer uma conexão exempo com um Banco no Interbase , usando o Driver da Borland... [u:ca55c990fa]Parametrizando a consulta [/u:ca55c990fa]e verificando se existe erro... Caso tenha sucesso nesta empreitada , fica evidente que o problema esta na utilização ou configuração do Dirver
para o Interbase..
Acho que voce deve então , verificar com mais atenção a parte II do Curso , que mostra como utilizar o Driver para o Firibird.
Sugiro tb se possivel for fazer uma conexão exempo com um Banco no Interbase , usando o Driver da Borland... [u:ca55c990fa]Parametrizando a consulta [/u:ca55c990fa]e verificando se existe erro... Caso tenha sucesso nesta empreitada , fica evidente que o problema esta na utilização ou configuração do Dirver
para o Interbase..
GOSTEI 0
Smpferr
17/10/2007
Sim Marco, o parametro é do tipo inteiro... só que no meu arquivo eu coloquei tipo data... já viu né?
De qualquer maneira, vou fazer como vc sugeriu em relação ao Banco no Interbase
Silvia
De qualquer maneira, vou fazer como vc sugeriu em relação ao Banco no Interbase
Silvia
GOSTEI 0
Marco Salles
17/10/2007
Sim Marco, o parametro é do tipo inteiro... só que no meu arquivo eu coloquei tipo data...
tipo data ???? Como Assim Tipo Data ????
GOSTEI 0