如何自动生成编号??不重复的。删除就可能会出现重复。请问如何解决(100)

  • 主题发起人 主题发起人 jink
  • 开始时间 开始时间
J

jink

Unregistered / Unconfirmed
GUEST, unregistred user!
比如表1 客户名称 电话 地址1 1 1 2 2 2表2客户名称 联系人 手机1 x x1 y y2 z zadoquery1--dbgrideh1--表1adoquery2--dbgrideh2--表2edit1 butten1 butten2如选择dbgrideh1中的 客户名称 1 的那一行,dbgrideh2显示:联系人 手机x xy y问题:1、如何点击butten1 表1 表2 同时添加 客户名称 = edit1.text2、如何点击butten2 表1 同时修改 客户名称 = edit1.text 表2 where 客户名称 = 13、如何在dbgrideh2 中添加 新的 ‘联系人’ ‘手机 ’ 时 ‘客户名称 = 1 ’ 问题追加剩下的 分 问个幼稚的问题。。如何自动生成编号??不重复的KH090002.....KH09010009表示年份顺便说一下,我找过别人的方法,开始如果删除就可能会出现重复。请问如何解决? vari:integer;curdate:string;beginadodataset1.open;for i:=0 to adodataset1.recordcount dobegincurdate:=FormatDatetime('yy',now);//adodataset1.Append;edit1.Text:='kh'+curdate+'-00'+inttostr(i+1);next;
 
你的两个表可以合在一起啊?你的问题直接写代码操作就可以了或在存储过程中操作;加事务处理更保险
 
本来就像让他分开显示。看个样子类别比较明显。。麻烦高手详细指点,发语句偶抄袭一下。。HOHO
 
表1 客户ID 客户名称 电话 地址1 KH1 1 1 2 KH2 2 2表2客户ID 联系人 手机1 x x1 y y2 z z表2不应该有客户名称,而应该是客户ID,通过客户ID关联表1,获得客户名称。界面上的2个DATASET是主从关系,建立好主从关系后,从表中的客户ID会自动赋值为主表中的客户ID.
 
how to? 怎么建立啊?
 
原先的属性保持不变,另外增加修改属性:adoquery2.datasource := datasource1;adoquery2.sql.text:='Select * from 表2 where 客户ID= :客户ID ';就可以了。---------问题:1、如何点击butten1 表1 表2 同时添加 客户名称 = edit1.text 答:adoquery1先Append增加记录,但“客户ID”字段需要从数据库中查询最大值并加12、如何点击butten2 表1 同时修改 客户名称 = edit1.text 表2 where 客户名称 = 1 答:只需要更改表1的客户名称3、如何在dbgrideh2 中添加 新的 ‘联系人’ ‘手机 ’ 时 ‘客户名称 = 1 ’ 答: 完成了上面问题后,还需要再问这个问题的话,那就说明DELPHI基础太差。此外,建议你先学习一些数据库设计方面的知识。其实你的问题真的没有任何难度,别人不回答,是因为认为太简单了,简单到不好回答。
 
hoho 大家复习一下基础知识~~~~~ 偶没学过,无聊了做个客户管理软件,也顺便学习一下,看看是不是可以转行呢~~~~~~~~
 
问题解决不了~~~~~~~~~~我只通过dbgirdeh添加联系人和手机的时候 客户名称不自动添加。。因为dbgrideh 不显示客户名称 使用不能直接添加。。提示客户名称 为空~~~ 承接上一条内容的 客户名称怎么做?
 
如此建立数据库 真是高手
 
那高手指点如何建立?
 
偶也在搞CRM软件,感觉楼主搞得太复杂了;可以将联系人和客户分开界面处理;联系人那里可以选择客户、客户那里选择主联系人,这样他们就联系起来了
 
其实这个问题。主要还是他们 购买东西 时使用的 客户可能在不同的时期来购买不同的东西。。这个如何来联系呢?
 
或者给我换个思路。。我僵住了、。
 
方法不对大家指点哦~~~~~~~~~~··
 
1>把你现在的数据表结构更改掉,不要再让人看笑话。2>看一些主从表的案例,delphi书籍中,都有这样的案例,而我,也曾经在上面说过,可惜你可能还没看到。
 
最后用 adodataset 轻松搞定~~~剩下的 分 问个幼稚的问题。。如何自动生成编号??不重复的KH090002.....KH09010009表示年份顺便说一下,我找过别人的方法,开始如果删除就可能会出现重复。请问如何解决?
 
怎么不能先给50??
 
KH090002这种编号没法自动生成,你通过另外一个ADOQuery去查询吧。function getCode:String;var title:String;begin title:=;KH'+年份; adoquery.close; adoquery.sql.text:='select max(code) from 表 where Code like '''+Title+'%'' '; adoquery.open; if adoquery.fields[0].asstring then result:=title+'0001' else 根据当前最大编号,计算下一个编号,代码不写了 adoquery.close;end;在这里,分数要么全部给一个人,要么分摊(不一定均分)给几个人,不可以只给一半。
 
function TfrmNewOrder.GetOrderIDByTime: string;begin Result := FormatDateTime('yyyyMMdd', Now()) + inttostr(Round(GetTickCount mod 1000000));end;我是这样生成的。应不会有问题。GeiTickCount重复概率不太大
 
function TfrmNewOrder.GetOrderIDByTime: string;begin Result := FormatDateTime('yyyyMMddhhmmss', Now()) + inttostr(Round(GetTickCount mod 1000000));end;加上时分秒更不会重复了吧
 
后退
顶部