| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 306 人关注过本帖
标题:VFP SPT保存到SQL数据,字段很多空格,这个有办法处理吗?
只看楼主 加入收藏
ljb8864
Rank: 2
等 级:论坛游民
帖 子:171
专家分:14
注 册:2023-6-4
结帖率:2.78%
收藏
已结贴  问题点数:20 回复次数:4 
VFP SPT保存到SQL数据,字段很多空格,这个有办法处理吗?
VFP SPT保存到SQL数据,字段很多空格,这个有办法处理吗?


如:cnn=SQLCONNECT("northwind")
SQLEXEC(cnn,"select categoryid as id ,categoryname,description from categories","mycursor")
SELECT mycursor
CURSORSETPROP("Tables","categories","mycursor")
CURSORSETPROP("KeyFieldList","id","mycursor")
CURSORSETPROP("UpdatableFieldList" ,"id,categoryname,description","mycursor")
CURSORSETPROP("UpdateNameList","id categories.categoryid,categoryname categories.categoryname,"+ "description categories.description","mycursor")
CURSORSETPROP("SendUpdates" ,.t.,"mycursor")
CURSORSETPROP("WhereType" ,3)

Visual FoxPro的所有的SQL Pass Though功能
保存时,字段上有很我空格。

[此贴子已经被作者于2023-12-20 09:35编辑过]

搜索更多相关主题的帖子: SQL 空格 VFP 保存 字段 
2023-12-20 09:32
easyppt
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:302
专家分:696
注 册:2021-11-24
收藏
得分:10 
VFP 的 cursor 字符型的字段类型 调整为 V,即可,CA很容易。
SPT的自动更新模式我很少用,不知道能不能设置cursor类型,如果能,改成V,就可以了。
2023-12-20 10:35
ljb8864
Rank: 2
等 级:论坛游民
帖 子:171
专家分:14
注 册:2023-6-4
收藏
得分:0 
回复 2楼 easyppt
local lcConnString, ;
loCursor as CursorAdapter, ;
laErrors[1] lcConnString = 'driver=SQL Server;server=(local);' + ;
      'database=Northwind;uid=sa;pwd=;trusted_connection=no'
* 把这里的密码改成你自己的数据库中密码
loCursor = createobject('CursorAdapter')
with loCursor
  .Alias = 'Customers'
  .DataSourceType = 'ODBC'
  .DataSource = sqlstringconnect(lcConnString)
  .SelectCmd = "select CUSTOMERID, " + ;
      "COMPANYNAME, CONTACTNAME from CUSTOMERS " + ;
      "where COUNTRY = 'Brazil'"
  .KeyFieldList = 'CUSTOMERID'
  .Tables = 'CUSTOMERS'
  .UpdatableFieldList = 'CUSTOMERID, COMPANYNAME, ' + ;
      'CONTACTNAME'
  .UpdateNameList = ;
      'CUSTOMERID CUSTOMERS.CUSTOMERID, ' + ;
      'COMPANYNAME , ' + ;
      'CONTACTNAME CUSTOMERS.CONTACTNAME'
  if .CursorFill()
     browse
  else
     aerror(laErrors)
     messagebox(laErrors[2])
  endif
  .CursorFill()
endwith


CA还没有使用过,是这样吗?但是字段类型怎么改?
2023-12-20 12:05
ljb8864
Rank: 2
等 级:论坛游民
帖 子:171
专家分:14
注 册:2023-6-4
收藏
得分:0 
* 只是一个指向 DataEnvironment 对象的指针.
 myde=Createobject("Data1")
 Thisform.DataEnvironment=myde
 myde.ADDOBJECT("demoname", "demo")
 &&myde.demoname.selectcmd="select top 10 * from ................"
 myde.demoname.selectcmd=comSql

 
 * 在 LOAD 开始时打开表.
 Thisform.DataEnvironment.OpenTables

  Thisform.DataEnvironment.CloseTables && 在 destroy 过程的结束处关闭表



Define Class Data1 As DataEnvironment && 数据环境类
 Name = "Dataenvironment"
 
 Top = 220
 Left = 1
 Width = 520
 Height = 200
 Datasource = .Null.
 DataSourceType = "ADO"

 Procedure BeforeOpenTables
 *** Select connection code: DO NOT REMOVE

 Local loConnDataSource
 loConnDataSource = Createobject('ADODB.Connection')
 ***<DataSource>
 
 &&loConnDataSource.ConnectionString = [Provider=SQLOLEDB.1;Password=cxy;Persist Security Info=True;User ID=sa;Ini] + ;
 && [tial Catalog=bussetup;Data Source=.;]
 
 loConnDataSource.ConnectionString = conString
 ***</DataSource>
 loConnDataSource.Open()
 This.Datasource = Createobject('ADODB.RecordSet')
 This.Datasource.CursorLocation   = 3  && adUseClient
 This.Datasource.LockType         = 3  && adLockOptimistic
 This.Datasource.ActiveConnection = loConnDataSource
 *** End of Select connection code: DO NOT REMOVE

 ENDPROC
 
Enddefine && 添加 Cursor 类对象

DEFINE CLASS demo as CursorAdapter
UseDeDataSource= .T.
 
SelectCmd="select * from ........."
 

CursorSchema ="ID I, 日期 T"
 

 

Alias = "demotable"
Flags = 0
KeyFieldList = "ID"
Tables = ".......D"
UpdatableFieldList = "................"
UpdateNameList = "......................."
UseCursorSchema = .T.
Name = "demo"


 Procedure Init
 *** Setup code: DO NOT REMOVE
 Local llReturn
 Do Case
 Case Not Pemstatus(This, '__VFPSetup', 5)
  This.AddProperty('__VFPSetup', 0)
 Case This.__VFPSetup = 1
  This.__VFPSetup = 2
 Case This.__VFPSetup = 2
  This.__VFPSetup = 0
  Return
 Endcase
 Set Multilocks On
 llReturn = DoDefault()
 *** End of Setup code: DO NOT REMOVE

 *** Setup code: DO NOT REMOVE
 If This.__VFPSetup = 1
  This.__VFPSetup = 2
 Endif
 Return llReturn
 *** End of Setup code: DO NOT REMOVE

 Endproc
 Procedure AutoOpen
 *** Setup code: DO NOT REMOVE
 If Not Pemstatus(This, '__VFPSetup', 5)
  This.AddProperty('__VFPSetup', 1)
  This.Init()
 Endif
 *** End of Setup code: DO NOT REMOVE

 Endproc


ENDDEFINE

[此贴子已经被作者于2023-12-20 12:51编辑过]

2023-12-20 12:48
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:707
专家分:2833
注 册:2018-3-13
收藏
得分:10 
CA 类有 MapVarchar 属性可以设置

这家伙很懒,啥也没留下
2023-12-20 17:20
快速回复:VFP SPT保存到SQL数据,字段很多空格,这个有办法处理吗?
数据加载中...
 
   



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

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