如何将记录分割插入(20分)

  • 主题发起人 agamomnon
  • 开始时间
A

agamomnon

Unregistered / Unconfirmed
GUEST, unregistred user!
表一:发票类型,号码1,号码2
表二:发票类型,每本份数
要做的是根据用户录入的发票类型,起始和截止号码将记录插入到数据库,
比如:通用发票:1001到1075,在表二中:通用发票每本25份,
就必须将其分割为1001到1025,1026到1050,1051到1075的三条记录
现在发票类型是用dblookupcombobox,query来从表一中取数据,号码用的
是edit,
问题一:我怎么才能知道用户录入发票类型的份数并以此来进行分割,
就是根据发票类型从表二中取份数来进行运算
问题二:怎么判断数据库中是否有相同的记录并提示

可能说的不太清楚,希望能有详细的语句,我刚开始学,没任何基础
 
不知道怎么将值给取出来,
如果用DBEDIT来取得的话,那么我怎么才能将DBEDIT中的值赋给一个变量
 
这个太简单了:)
你的dblookupcombobox用table的数据源连接,当用户确定选择的发票类型的时候,份数
就知道了阿。一个for循环解决问题。
for i=0 to (strtoint(edit2.text)-strtoint(text1.text))/table1.fieldbyname('份数').asinteger do
begin
插入数据
end;
 
将DBEDIT中的值赋给一个变量t:
加一个label, visible=false;
label1.caption:=DBEDIT1.text;
t:=StrToInt(label1.caption)
则t就是DBEDIT中的值(整型数)
 
根据发票类型从表二中取份数(结果存入整数Num)来进行运算:
query1.Open;
query1.first;
while not query1.eof do
begin
if query1.fieldvalues['发票类型']=dblookupcombobox.text then
Num:=query1.fieldvalues['每本份数'];
query1.next;
end;

 
怎么判断数据库中是否有相同的记录并提示:
这个比较简单了,比如说表二中发票类型是关键字(必填且唯一)
看看数据库库中是否有EDIT1中写入的发票类型:
query1.Open;
query1.first;
while not query1.eof do
begin
if query1.fieldvalues['发票类型']=edit1.text then
showmessage('已经有此发票类型的信息了');
query1.next;
end;
如果你是插入记录就要先判断了,如果有重复记录就要CANCEL了
table1.insert;
if 记录重复 then
table1.cancel
else
table1.post;
 
多谢各位,我试试
 
实在是对不起,我还是不会写,我想问一下JohnSun2002,
现在是从第一条记录开始比较,用一个while语句,
那怎么做到比较完所有记录都没有重合的话就执行insert语句,
否则就退出呢。
 
顶部