请教,一个数据库的问题。

windcat 2002-05-31 11:00:16
我建了一个sql server数据库,要通过金额显示它的排名。我想通过一边查询一边就确定它的排名,但以下程序出错,请问有何办法解决。
i = 0
str = "select * from repri_tab order by smoney desc"
repri.Open (str)
Do Until repri.EOF
i = i + 1
With repri
.field("order")=i
.Update
End With
Set dbitem = dblist.ListItems.Add(, i & "ID", i)
dbitem.SubItems(1) = repri.Fields("wangno")
dbitem.SubItems(2) = repri.Fields("count")
dbitem.SubItems(3) = formatd(Format(repri.Fields("smoney"), "##,##0.00"))
repri.MoveNext
Loop

...全文
75 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzsswz 2002-05-31
  • 打赏
  • 举报
回复
repri.Open (str, cnn, adOpenStatic, adLockReadOnly)
应为:
repri.Open (str, cnn, adOpenStatic, adLockOptimistic)
wzsswz 2002-05-31
  • 打赏
  • 举报
回复
i = 0
str = "select * from repri_tab order by smoney desc"
repri.Open (str, cnn, adOpenStatic, adLockReadOnly)
str = "delete * from repri_tab "
repri00.open(str)
Do Until repri.EOF
i = i + 1
With repri
。。。
这样试试看
windcat 2002-05-31
  • 打赏
  • 举报
回复
写这个的目的就是把真正的排名导入数据库,i其实就是名次。这是必要的。
具体出错确实是
With repri
.field( "order ")=i
.Update
End With
这段代码。
hillmanweb 2002-05-31
  • 打赏
  • 举报
回复
具体出什么错?
gmc007 2002-05-31
  • 打赏
  • 举报
回复
sql语句是没错的,错的是:
With repri
.field("order")=i
.Update
End With
你这是什么意思?上面的SQL语句不是排序了吗?
你去掉这四行代码就行了。
gyang 2002-05-31
  • 打赏
  • 举报
回复
可以
1。生成临时表
create table yg_xxxx as(select * from repri_tab order by smoney desc)

2.删除元标
delete repri_tab;
3.更改表明
rename yg_xxxx to repri_tab;
ql_mf 2002-05-31
  • 打赏
  • 举报
回复
奇怪,不应该不行呀,难道不是打开方式的问题?
gyang 2002-05-31
  • 打赏
  • 举报
回复
i = 0
str = "select * from repri_tab order by smoney desc"
repri.Open (str)
Do Until repri.EOF
i = i + 1
With repri
exec "update repri_tab set order =" & i & " where id=" & .field("id")
End With
Set dbitem = dblist.ListItems.Add(, i & "ID", i)
dbitem.SubItems(1) = repri.Fields("wangno")
dbitem.SubItems(2) = repri.Fields("count")
dbitem.SubItems(3) = formatd(Format(repri.Fields("smoney"), "##,##0.00"))
repri.MoveNext
Loop
windcat 2002-05-31
  • 打赏
  • 举报
回复
那有没有什么方法可以将它按某一条件的排序的结果放入数据库中?
gyang 2002-05-31
  • 打赏
  • 举报
回复
i = 0
str = "select * from repri_tab order by smoney desc"
repri.Open (str)
Do Until repri.EOF
i = i + 1
With repri
exec "update repri_tab set order =" & i
End With
Set dbitem = dblist.ListItems.Add(, i & "ID", i)
dbitem.SubItems(1) = repri.Fields("wangno")
dbitem.SubItems(2) = repri.Fields("count")
dbitem.SubItems(3) = formatd(Format(repri.Fields("smoney"), "##,##0.00"))
repri.MoveNext
Loop
gyang 2002-05-31
  • 打赏
  • 举报
回复
update是错误的,逻辑上的错误,一条语句是不可能做到上述两种事情的,
update时,应该只update选中的一条记录。你想在显示的同时更新数据库没有道理。
windcat 2002-05-31
  • 打赏
  • 举报
回复
还是不行
关键是在
.update
的时候会出错。
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境中完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程中的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧