标题:用cursoradapter 类生成的cursor,,brow可以看到.Grid 怎么获取不到?
只看楼主
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:161
注 册:2009-8-20
结帖率:100%
已结贴  问题点数:20 回复次数:9 
用cursoradapter 类生成的cursor,,brow可以看到.Grid 怎么获取不到?
用cursoradapter 类生成的cursor,,brow可以看到.Grid 怎么获取不到?

程序代码:
oForm = Createobject("form1")
oForm.Show
Read Events
Define Class form1 As Form
    Caption = "CursorAdapter类示例"
    Name = "Form1"
    Add Object grid1 As Grid With ;
        Anchor = 15, ;
        Height = 229, ;
        Left = 6, ;
        Top = 12, ;
        Width = 361, ;
        Name = "Grid1"
    Procedure Load
        lo = Createobject("caODBC")
        Browse
    Endproc
    Procedure Init
        This.grid1.RecordSource = "客户"
        This.grid1.RecordSourceType = 1
    Endproc
    Procedure Destroy
        Clear Events
    Endproc
Enddefine
Define Class caodbc As CursorAdapter
    Height = 22
    Width = 23
    Alias = "客户"
    BufferModeOverride = 5
    DataSourceType = "ODBC"
    Name = "caodbc"
    Procedure Init
        Local lcConnStr, lnConn
        lcConnStr = "Driver=SQL Server;Server=(local);DATABASE=Northwind;uid=sa;pwd="
        lnConn = Sqlstringconnect(lcConnStr)
        If lnConn > 0 Then
            This.Datasource = lnConn
            This.SelectCmd = "SELECT * FROM Customers"
            This.CursorFill()
        Else
            Messagebox("连接失败!")
        Endif
    Endproc
    Procedure Destroy
        If This.Datasource > 0 Then
            SQLDisconnect(This.Datasource)
        Endif
    Endproc
Enddefine


[此贴子已经被作者于2016-3-1 18:56编辑过]

搜索更多相关主题的帖子: cursor 
2016-03-01 16:13
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
Grid你怎么设置?
2016-03-01 18:41
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:161
注 册:2009-8-20
得分:0 
回复 2楼 tlliqi
代码发上去了,您给看看,卡了好久了.
2016-03-01 18:58
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
CursorAdapter 也支持本地自由表,如果本地表正常,问题可能出在远程?
2016-03-01 19:31
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
    Procedure Init
        This.grid1.RecordSource = "客户"
        This.grid1.RecordSourceType = 1
    Endproc

这里运行时改变了GRID的数据源,GRID被重新初始化了,可以去掉这两句,写到这里:
    Add Object grid1 As Grid With ;
        Anchor = 15, ;
        Height = 229, ;
        Left = 6, ;
        Top = 12, ;
        Width = 361, ;
        Name = "Grid1",;
        RecordSourceType = 1,;
        RecordSource = "客户"


[此贴子已经被作者于2016-3-1 20:17编辑过]

2016-03-01 20:15
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:161
注 册:2009-8-20
得分:0 
回复 4楼 吹水佬
不是远程原因,获取的cursor用brow可以列示。
2016-03-02 06:39
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:161
注 册:2009-8-20
得分:0 
以下是引用吹水佬在2016-3-1 20:15:40的发言:

    Procedure Init
        This.grid1.RecordSource = "客户"
        This.grid1.RecordSourceType = 1
    Endproc

这里运行时改变了GRID的数据源,GRID被重新初始化了,可以去掉这两句,写到这里:
    Add Object grid1 As Grid With ;
        Anchor = 15, ;
        Height = 229, ;
        Left = 6, ;
        Top = 12, ;
        Width = 361, ;
        Name = "Grid1",;
        RecordSourceType = 1,;
        RecordSource = "客户"

最初就是这样写的.没效果才改到form的init中。
2016-03-02 06:42
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:20 
留意过相关贴
是用了局部变量的问题
    Procedure Load
        lo = Createobject("caODBC")
        Browse   
    Endproc
这时Browse与lo同在一个作用域,brow可以看到。Load过程结束后,lo会被释放,GRID数据源关闭了。
2016-03-02 09:11
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:161
注 册:2009-8-20
得分:0 
回复 8楼 吹水佬
是这个原因.谢谢!
2016-03-02 10:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
设计时与运时的概念,讲过也是这样.

授人以渔,不授人以鱼。
2016-03-03 18:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-462059-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.071883 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved