热情软件屋

 

能否对ADO 结果集中由SQL语句产生的虚拟字段进行赋值


编号:QA004492
建立日期: 2001年12月3日 最后修改日期:2001年12月23日
所属类别:

xu03:
    操作系统:WIN
    编程工具:VB
    问题:能否对ADO 结果集中由SQL语句产生的虚拟字段进行赋值?
    哪位朋友能解决,在此表示谢谢!目的:对ADO结果集体的虚拟字段进行赋值。 当我进行如下操作时会出现错误!
     DataGridList.Columns("金额") = 0
     DataGridList.Columns("名称") = "单排三口西服"
     ''或则
     CommonADO!名称 = "单排三口西服"
     CommonADO!金额 = CommonADO!数量 * CommonADO!金额
    
     但却出现“实时错误7010 此列只读”
     或则“多步操作产生错误,请检查没一步的状态值”
    
    原程序如下:(以下程序的连接等均通过)
    1、在窗体上放置 DATAGRIDLIST
    2、
    Dim ClassName As String '''大类 类别名称
    Dim CommonADO As ADODB.Recordset
    ''通用的ADORS 可进行读写的ADO 用于录入和查询的
    Dim SQLstring As String
    
    strCNN="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa; " & _
     " PWD=0203;Initial Catalog=MISBZ;Data Source=TGSMAIN"
    Set ServerCNN = New ADODB.Connection
    ServerCNN.Open strCNN
    
    Set CommonADO = New ADODB.Recordset
     With CommonADO
     .ActiveConnection = ServerCNN
     .CursorLocation = adUseClient
     .CursorType = adOpenKeyset
     .LockType = adLockBatchOptimistic
     End With
    SQLstring = "select 编号,产品编号,名称='', 数量,单价,金额=0 " & _
     "from db where 0=1 "
    With CommonADO
     If .State = adStateOpen Then ''判断是否为打开状态
     .Close
     End If
     .Source = SQLstr
     .Open
    End With
    CommonADO.AddNew
    Set DataGridList.DataSource = CommonADO

回答:

    建议修改表结构,增加一列计算金额的列:
    例如:create table (
    编号 int,产品编号 int,名称 varchar(20), 数量 int ,单价 money,金额 as 数量 *单价
    ).
    
    Alvan Lo的意见:
    Create Temporary Table:
    1.ServerCNN.Execute
    "select 编号,产品编号,名称='', 数量,单价,金额=0 into #Temp from db where 0=1"
    2.SQLstring="Select * From #Temp"

此问题由catzhou回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio