Delphi使用TADOQuery时,Guid外键字段的困扰
2006-10-17 01:25
260 查看
在使用Guid字段时,如果不小心设置有默认值,将使数据更新产生很大的问题,
EXEC sp_addtype N'u_id', N'uniqueidentifier', N'null'
EXEC sp_bindefault N'[dbo].[Default_ID]', N'[u_id]'
create table 教师(
教师GUID u_id not null,
编号 varchar(10),
姓名 varchar(10)
)
go
ALTER TABLE [dbo].[教师] ADD
PRIMARY KEY NONCLUSTERED
(
[教师GUID]
) ON [PRIMARY]
GO
create table 班级(
班级GUID u_id not null,
编号 varchar(10),
班主任GUID u_id
)
go
ALTER TABLE [dbo].[班级] ADD
PRIMARY KEY NONCLUSTERED
(
[班级GUID]
) ON [PRIMARY]
GO
--建立外键连接
ALTER TABLE [dbo].[班级] ADD
FOREIGN KEY
(
[教师GUID]
) REFERENCES [dbo].[教师] (
[教师GUID]
)
如果在表中维护[班级]数据,使用TADOQuery的进行更新时,将出现主键不匹配的错误:
var
adoTeacher, adoClass: TADOQuery;
begin
打开adoTeacher数据.....
打开adoClass数据.....
adoClass.append;
adoClass.fieldbyname('班主任GUID').asstring=adoTeacher.FieldByName('教师GUID').AsString;
adoClass.Post;
adoClass.UpdatePatch; //这时将提示外键错误!!!!
象这种情况偶没有办法解决,不知道有谁会去解决呢?我试过用SQL字符串进行操作的方式可以解决这个问题,
没办法,只好这样了。
EXEC sp_addtype N'u_id', N'uniqueidentifier', N'null'
EXEC sp_bindefault N'[dbo].[Default_ID]', N'[u_id]'
create table 教师(
教师GUID u_id not null,
编号 varchar(10),
姓名 varchar(10)
)
go
ALTER TABLE [dbo].[教师] ADD
PRIMARY KEY NONCLUSTERED
(
[教师GUID]
) ON [PRIMARY]
GO
create table 班级(
班级GUID u_id not null,
编号 varchar(10),
班主任GUID u_id
)
go
ALTER TABLE [dbo].[班级] ADD
PRIMARY KEY NONCLUSTERED
(
[班级GUID]
) ON [PRIMARY]
GO
--建立外键连接
ALTER TABLE [dbo].[班级] ADD
FOREIGN KEY
(
[教师GUID]
) REFERENCES [dbo].[教师] (
[教师GUID]
)
如果在表中维护[班级]数据,使用TADOQuery的进行更新时,将出现主键不匹配的错误:
var
adoTeacher, adoClass: TADOQuery;
begin
打开adoTeacher数据.....
打开adoClass数据.....
adoClass.append;
adoClass.fieldbyname('班主任GUID').asstring=adoTeacher.FieldByName('教师GUID').AsString;
adoClass.Post;
adoClass.UpdatePatch; //这时将提示外键错误!!!!
象这种情况偶没有办法解决,不知道有谁会去解决呢?我试过用SQL字符串进行操作的方式可以解决这个问题,
没办法,只好这样了。
相关文章推荐
- 数据库中使用自增量字段与Guid字段主键的性能对比
- Delphi2010中ADOQuery使用Oracle的Blob字段出现错误解决方法
- 使用 bootstrapTable 绘表格的时候,如何给每行绑定不同的data-guid 的扩展字段呢?
- 使用NaviCat无法更改MySQL数据库某个字段的名字时..先把外键和索引删除了..
- 数据库中使用自增量字段与Guid字段作主键的性能对比
- Delphi使用TADOQuery时:不正常地定义参数对象。提供了不一致或不完整的信息。
- 据库中使用自增量字段与Guid字段主键的性能对比
- 使用Delphi生成GUID
- SQLServer使用SQL查看表的主键和外键字段
- 据库中使用自增量字段与Guid字段主键的性能对比
- [轉]數据库中使用自增量字段与Guid字段主键的性能对比
- python django 多级业务树形结构规划及页面渲染 概述: 在项目中,父级到子级结构并不少见,如果仅仅的两层树形结构,我们可以使用数据库的外键设计轻松做到,子级业务表设计一字段外键到父级
- 数据库中使用自增量字段与Guid字段作主键的性能对比(补充篇)-----转
- 在Oracle+NHibernate环境下使用Guid字段
- mysql外键使用错误字段名称,不能删除或修改字段名
- delphi 使用GUID
- 据库中使用自增量字段与Guid字段主键的性能对比(转)
- 数据库中使用自增量字段与Guid字段作主键的性能对比
- 数据库中使用自增量字段与Guid字段主键对比
- mysql外键使用错误字段名称,不能删除或修改字段名