O Delphi respeita as restrições, mas recebendo as mensagens de erros originárias do banco de dados. Voc pode tratá-las devidamente se você utilizar um bloco Try Except end no evento onPost do componente table ou query que você estiver utilizando. Implemente isto e não terá mais problemas. Quanto ao teu script, dá uma olhada na variável campo que acredito que ela não esteja setada devidamente. Abs.
Júlio Abdala Carlos Delfino Carvalho Pinheiro <[EMAIL PROTECTED]> escreveu: Bons Dias! Sou programador Java a 3 anos, e estou trabalhando em um projeto com Delphi, mas estou tendo serios problemas com restrições de relacionamento, que o Delphi não tem respeitado! Agradeço muito a colaboração dos colegas! Vamos a detalhes: Tenho 3 tabelas: CREATE TABLE [dbo].[OPERADOR_SUBESTOQUE] ( [CD_OPERADOR] [int] NOT NULL , [CD_SUBESTOQUE] [int] NOT NULL ) ON [PRIMARY] CREATE TABLE [dbo].[OPERADOR] ( [CD_OPERADOR] [int] IDENTITY (1, 1) NOT NULL , [NM_OPERADOR] [varchar] (50) , [NM_APELIDO] [varchar] (25) NOT NULL , [DE_SENHA] [varchar] (15) NOT NULL , [ID_BLOQUEIO] [varchar] (1) NULL ) ON [PRIMARY] CREATE TABLE [dbo].[SubEstoque] ( [CD_SUBESTOQUE] [int] IDENTITY (1, 1) NOT NULL , [NM_SUBESTOQUE] [varchar] (50) NOT NULL ) ON [PRIMARY] A tabela Operador_Subestoque recebe como FK o campo Cd_Operador de Operador e Cd_SubEstoque de SubEstoque. A intenção é caso exista um registro na Tabela Operador_Subestoque, o operador pode atuar sobre o SubEstoque! mas infelizmente o Delphi emite uma mensagem de erro quanto tento inserir um registro, tal mensagem de erro relata que estou tentando inserir uma valor nulo no campo CD_SubEstoque da tabela Operador_SubEstoque, o que realmente não é permitido. Estou usando o seguinte codigo para inserir o novo registro (o erro esta na linha que possui o comentário): with FrmListaSimplesSubEstoque.DBGrid1 do if SelectedRows.Count>0 then with DataSource.DataSet do for i:=0 to SelectedRows.Count-1 do begin GotoBookmark(pointer(SelectedRows.Items[i])); Campo := Fields[0].AsInteger; DmAuditoria.TableOperadorSubestoque.InsertRecord([DmAuditoria.TableOperadorCD_OPERADOR.AsInteger,Campo]); // o erro ocorre nesta liha DmAuditoria.TableOperadorSubestoque.Post; end; end; Mais uma vez agradeço, caso necessite mais informaçoes estou disponivel! Se preferir eis meu MSN [EMAIL PROTECTED] Obrigado! -- Carlos Delfino Consultoria e Pesquisa Desenvolvimento de Softwares. Sun Certified Associate for Java Platform -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE --------------------------------- Links do Yahoo! Grupos Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. --------------------------------- Yahoo! doce lar. Faça do Yahoo! sua homepage. --------------------------------- Yahoo! doce lar. Faça do Yahoo! sua homepage. [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html