Fórum Erro mestre/detalhe com DBExpres #286211
27/06/2005
0
Boa tarde a todos.
Amigos estou com o seguinte problema:
Tenho um relacionamento mestre/detalhe com DBExpres acessando uma base FireBird 1.5 com Delphi 2005. Quando insiro um registro só na tabela mestre(PRODUTO)e dou ApplyUpdates funciona perfeitamente mas quando mando inserir na tabela detalhe(ITEMPROD) dou um ApplyUpdates retorna o segunte erro:
---------------------------
Debugger Exception Notification
---------------------------
Project SGPS.exe raised exception class EUIBError with message ´validation error for column IDPRODUTO, value ´*** null ***´
The insert failed because a column definition includes validation constraints.
Error Code: 27´.
---------------------------
O erro só ocorre quando estou inserindo. Quando estou editando e dou o ApplyUpdates não da o erro.
Pelo que entendi o erro acontece porque o campo IDPRODUTO está null. Mas o não está. Visualizo esse campo no DBgride.
Sou assinate da clube ClubeDelphi. Já li varios artigos sobre o assunto mas não estou conseguindo encotrar o problema.
Já troquei o driver para Interbase pois achava que era problemas com o UIB mas, o erro continuou.
Conto com a colaboração de voces.
Obrigado pela atenção.
object SQLProduto: TSQLDataSet
SchemaName = ´SYSDBA´
CommandText = ´select * from PPRODUTO´
MaxBlobSize = -1
Params = <>
SQLConnection = DM.Conecxao
Left = 24
Top = 216
object SQLProdutoIDPRODUTO: TIntegerField
FieldName = ´IDPRODUTO´
ProviderFlags = [pfInWhere, pfInKey]
end
object SQLProdutoREF: TStringField
FieldName = ´REF´
FixedChar = True
Size = 13
end
object SQLProdutoGRUPO: TSmallintField
FieldName = ´GRUPO´
end
object SQLProdutoDESCRI: TStringField
FieldName = ´DESCRI´
Size = 32
end
object SQLProdutoDESENHO: TStringField
FieldName = ´DESENHO´
Size = 240
end
object SQLProdutoBLOQUEIO: TIntegerField
FieldName = ´BLOQUEIO´
end
object SQLProdutoDCRIAOCAO: TSQLTimeStampField
FieldName = ´DCRIAOCAO´
end
object SQLProdutoREFADICIONAL: TStringField
FieldName = ´REFADICIONAL´
Size = 32
end
object SQLProdutoTIPO: TSmallintField
FieldName = ´TIPO´
end
end
object SQLItProduto: TSQLDataSet
SchemaName = ´SYSDBA´
CommandText = ´select * from PITEMPROD´#1310´where idproduto = :idproduto´
DataSource = DSmasterprod
MaxBlobSize = -1
Params = <
item
DataType = ftInteger
Name = ´IDPRODUTO´
ParamType = ptInput
Size = 4
end>
SQLConnection = DM.Conecxao
Left = 24
Top = 272
object SQLItProdutoIDPRODUTO: TIntegerField
FieldName = ´IDPRODUTO´
ProviderFlags = [pfInWhere]
end
object SQLItProdutoITEM: TSmallintField
FieldName = ´ITEM´
ProviderFlags = [pfInWhere]
end
object SQLItProdutoDESCRI: TStringField
FieldName = ´DESCRI´
Required = True
Size = 32
end
object SQLItProdutoCOR: TSmallintField
FieldName = ´COR´
Required = True
end
object SQLItProdutoTBETAPA: TSmallintField
FieldName = ´TBETAPA´
end
object SQLItProdutoMATERIAL: TSmallintField
FieldName = ´MATERIAL´
Required = True
end
end
object DSPProduto: TDataSetProvider
DataSet = SQLProduto
Left = 104
Top = 216
end
object CDSProduto: TClientDataSet
Active = True
Aggregates = <>
Params = <>
ProviderName = ´DSPProduto´
Left = 184
Top = 216
object CDSProdutoIDPRODUTO: TIntegerField
FieldName = ´IDPRODUTO´
ProviderFlags = [pfInWhere, pfInKey]
end
object CDSProdutoREF: TStringField
FieldName = ´REF´
FixedChar = True
Size = 13
end
object CDSProdutoGRUPO: TSmallintField
FieldName = ´GRUPO´
end
object CDSProdutoDESCRI: TStringField
FieldName = ´DESCRI´
Size = 32
end
object CDSProdutoDESENHO: TStringField
FieldName = ´DESENHO´
Size = 240
end
object CDSProdutoBLOQUEIO: TIntegerField
FieldName = ´BLOQUEIO´
end
object CDSProdutoDCRIAOCAO: TSQLTimeStampField
FieldName = ´DCRIAOCAO´
end
object CDSProdutoREFADICIONAL: TStringField
FieldName = ´REFADICIONAL´
Size = 32
end
object CDSProdutoTIPO: TSmallintField
FieldName = ´TIPO´
end
object CDSProdutoSQLItProduto: TDataSetField
FieldName = ´SQLItProduto´
end
end
object DSmasterprod: TDataSource
DataSet = SQLProduto
Left = 104
Top = 272
end
object CDSItemProd: TClientDataSet
Active = True
Aggregates = <>
DataSetField = CDSProdutoSQLItProduto
Params = <>
Left = 184
Top = 272
object CDSItemProdIDPRODUTO: TIntegerField
FieldName = ´IDPRODUTO´
ProviderFlags = [pfInWhere]
end
object CDSItemProdITEM: TSmallintField
FieldName = ´ITEM´
ProviderFlags = [pfInWhere]
end
object CDSItemProdDESCRI: TStringField
FieldName = ´DESCRI´
Size = 32
end
object CDSItemProdCOR: TSmallintField
FieldName = ´COR´
end
object CDSItemProdTBETAPA: TSmallintField
FieldName = ´TBETAPA´
end
object CDSItemProdMATERIAL: TSmallintField
FieldName = ´MATERIAL´
end
end
end
Amigos estou com o seguinte problema:
Tenho um relacionamento mestre/detalhe com DBExpres acessando uma base FireBird 1.5 com Delphi 2005. Quando insiro um registro só na tabela mestre(PRODUTO)e dou ApplyUpdates funciona perfeitamente mas quando mando inserir na tabela detalhe(ITEMPROD) dou um ApplyUpdates retorna o segunte erro:
---------------------------
Debugger Exception Notification
---------------------------
Project SGPS.exe raised exception class EUIBError with message ´validation error for column IDPRODUTO, value ´*** null ***´
The insert failed because a column definition includes validation constraints.
Error Code: 27´.
---------------------------
O erro só ocorre quando estou inserindo. Quando estou editando e dou o ApplyUpdates não da o erro.
Pelo que entendi o erro acontece porque o campo IDPRODUTO está null. Mas o não está. Visualizo esse campo no DBgride.
Sou assinate da clube ClubeDelphi. Já li varios artigos sobre o assunto mas não estou conseguindo encotrar o problema.
Já troquei o driver para Interbase pois achava que era problemas com o UIB mas, o erro continuou.
Conto com a colaboração de voces.
Obrigado pela atenção.
object SQLProduto: TSQLDataSet
SchemaName = ´SYSDBA´
CommandText = ´select * from PPRODUTO´
MaxBlobSize = -1
Params = <>
SQLConnection = DM.Conecxao
Left = 24
Top = 216
object SQLProdutoIDPRODUTO: TIntegerField
FieldName = ´IDPRODUTO´
ProviderFlags = [pfInWhere, pfInKey]
end
object SQLProdutoREF: TStringField
FieldName = ´REF´
FixedChar = True
Size = 13
end
object SQLProdutoGRUPO: TSmallintField
FieldName = ´GRUPO´
end
object SQLProdutoDESCRI: TStringField
FieldName = ´DESCRI´
Size = 32
end
object SQLProdutoDESENHO: TStringField
FieldName = ´DESENHO´
Size = 240
end
object SQLProdutoBLOQUEIO: TIntegerField
FieldName = ´BLOQUEIO´
end
object SQLProdutoDCRIAOCAO: TSQLTimeStampField
FieldName = ´DCRIAOCAO´
end
object SQLProdutoREFADICIONAL: TStringField
FieldName = ´REFADICIONAL´
Size = 32
end
object SQLProdutoTIPO: TSmallintField
FieldName = ´TIPO´
end
end
object SQLItProduto: TSQLDataSet
SchemaName = ´SYSDBA´
CommandText = ´select * from PITEMPROD´#1310´where idproduto = :idproduto´
DataSource = DSmasterprod
MaxBlobSize = -1
Params = <
item
DataType = ftInteger
Name = ´IDPRODUTO´
ParamType = ptInput
Size = 4
end>
SQLConnection = DM.Conecxao
Left = 24
Top = 272
object SQLItProdutoIDPRODUTO: TIntegerField
FieldName = ´IDPRODUTO´
ProviderFlags = [pfInWhere]
end
object SQLItProdutoITEM: TSmallintField
FieldName = ´ITEM´
ProviderFlags = [pfInWhere]
end
object SQLItProdutoDESCRI: TStringField
FieldName = ´DESCRI´
Required = True
Size = 32
end
object SQLItProdutoCOR: TSmallintField
FieldName = ´COR´
Required = True
end
object SQLItProdutoTBETAPA: TSmallintField
FieldName = ´TBETAPA´
end
object SQLItProdutoMATERIAL: TSmallintField
FieldName = ´MATERIAL´
Required = True
end
end
object DSPProduto: TDataSetProvider
DataSet = SQLProduto
Left = 104
Top = 216
end
object CDSProduto: TClientDataSet
Active = True
Aggregates = <>
Params = <>
ProviderName = ´DSPProduto´
Left = 184
Top = 216
object CDSProdutoIDPRODUTO: TIntegerField
FieldName = ´IDPRODUTO´
ProviderFlags = [pfInWhere, pfInKey]
end
object CDSProdutoREF: TStringField
FieldName = ´REF´
FixedChar = True
Size = 13
end
object CDSProdutoGRUPO: TSmallintField
FieldName = ´GRUPO´
end
object CDSProdutoDESCRI: TStringField
FieldName = ´DESCRI´
Size = 32
end
object CDSProdutoDESENHO: TStringField
FieldName = ´DESENHO´
Size = 240
end
object CDSProdutoBLOQUEIO: TIntegerField
FieldName = ´BLOQUEIO´
end
object CDSProdutoDCRIAOCAO: TSQLTimeStampField
FieldName = ´DCRIAOCAO´
end
object CDSProdutoREFADICIONAL: TStringField
FieldName = ´REFADICIONAL´
Size = 32
end
object CDSProdutoTIPO: TSmallintField
FieldName = ´TIPO´
end
object CDSProdutoSQLItProduto: TDataSetField
FieldName = ´SQLItProduto´
end
end
object DSmasterprod: TDataSource
DataSet = SQLProduto
Left = 104
Top = 272
end
object CDSItemProd: TClientDataSet
Active = True
Aggregates = <>
DataSetField = CDSProdutoSQLItProduto
Params = <>
Left = 184
Top = 272
object CDSItemProdIDPRODUTO: TIntegerField
FieldName = ´IDPRODUTO´
ProviderFlags = [pfInWhere]
end
object CDSItemProdITEM: TSmallintField
FieldName = ´ITEM´
ProviderFlags = [pfInWhere]
end
object CDSItemProdDESCRI: TStringField
FieldName = ´DESCRI´
Size = 32
end
object CDSItemProdCOR: TSmallintField
FieldName = ´COR´
end
object CDSItemProdTBETAPA: TSmallintField
FieldName = ´TBETAPA´
end
object CDSItemProdMATERIAL: TSmallintField
FieldName = ´MATERIAL´
end
end
end
Hnegrao
Curtir tópico
+ 0
Responder
Posts
29/06/2005
Hnegrao
sobe
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)