kk_lee69 发表于 2019-10-15 14:56:26

xuanniao110 发表于 2019-10-15 14:29
这样出来的$pdz不管你是有2019sx列还是没有2019sx列   它的值都是0
這句話 不懂 請展示

我覺得 你是整個搞錯了

kk_lee69 发表于 2019-10-15 15:04:14

xuanniao110 发表于 2019-10-15 14:56
依然一样   判断值还是0不管是有列还是没列

那就表示你有地方錯了   我需要看到 你實係測試出來的東西 跟語法 不然我無法回答你的問題

xuanniao110 发表于 2019-10-15 15:12:45

本帖最后由 xuanniao110 于 2019-10-15 16:48 编辑

$conn = ObjCreate("ADODB.Connection")
                $RS = ObjCreate("ADODB.Recordset")
                $conn.Open("driver={SQL Server};server=" & $mdb_data_Server & ";uid=" & $mdb_data_id & ";pwd=" & $mdb_data_pwd & ";database=" & $mdb_data_Company)
                $RS.ActiveConnection = $conn
                $RS.Open("SELECT COUNT(*)FROM( select b.name from sysobjects as a, syscolumns as b where a.xtype = 'U' and a.id = b.id and a.name='' )as aWhere name='2019sx'") ;?取?一列的列名?
                While (Not $RS.eof And Not $RS.bof) ;循??表 有?料就跑回圈??料就?跳出
                $pdz = $RS.Fields(0).value ;此位置真不知道在AU3中是如何用?据集里面的???表?返回值的
                $RS.movenext
                              WEnd
                              EndIf
             MsgBox(0, "判断值", $pdz)
            If $pdz = 0 Then
               $RS.Open("ALTER TABLE [" & $mon & "mon" & "] ADD [" & $sxlm & "] FLOAT DEFAULT 'null'")
               $RS.Open("ALTER TABLE [" & $mon & "mon" & "] ADD [" & $cslm & "] FLOAT DEFAULT 'null'")
             MsgBox(0, "创建成功", "!!!!!!!")
               bc()
            Else
             bc()
            EndIf

以上为代码

程序测试中报错






kk_lee69 发表于 2019-10-15 15:59:46

本帖最后由 kk_lee69 于 2019-10-15 16:00 编辑

xuanniao110 发表于 2019-10-15 15:12
$conn = ObjCreate("ADODB.Connection")
                $RS = ObjCreate("ADODB.Recordset")
          ...
請直接下SQL 語法查詢 請不要使用AU3 任何程式

請不要套用到你的任何程式單純使用 查詢 跟取回值請不要使用任何有畫面的AU3程式

kk_lee69 发表于 2019-10-15 16:04:09

xuanniao110 发表于 2019-10-15 15:12
$conn = ObjCreate("ADODB.Connection")
                $RS = ObjCreate("ADODB.Recordset")
          ...

要詢問問題請把問題簡化成 單純的程式你套用到自己的程式有太多的可能性 造成錯誤.....請用最單純 最直接的方式 找問題

kk_lee69 发表于 2019-10-15 16:07:50

xuanniao110 发表于 2019-10-15 15:12
$conn = ObjCreate("ADODB.Connection")
                $RS = ObjCreate("ADODB.Recordset")
          ...

$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open("driver={SQL Server};server=" & $mdb_data_Server & ";uid=" & $mdb_data_id & ";pwd=" & $mdb_data_pwd & ";database=" & $mdb_data_Company)
$RS.ActiveConnection = $conn
$RS.Open("SELECT COUNT(*)FROM( select b.name from sysobjects as a, syscolumns as b where a.xtype = 'U' and a.id = b.id and a.name='' )as aWhere name='2019sx'") ;?取?一列的列名?
While (Not $RS.eof And Not $RS.bof) ;循??表 有?料就跑回圈??料就?跳出
$Ai = $RS.Fields(0).value ;此位置真不知道在AU3中是如何用?据集里面的???表?返回值的
$RS.movenext
WEnd
MsgBox(0, "Ai為", $Ai)

使用上面的語法 都不要更動 只要連線你的資料庫   執行兩次 截圖秀出 有 2019sx 跟 沒有 2019sx 的狀況

xuanniao110 发表于 2019-10-15 16:32:02

kk_lee69 发表于 2019-10-15 16:07
$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open("driver={SQL ...

$mdb_data_Server = "172.16.102.40"
$mdb_data_id = "sa"
$mdb_data_pwd = "100200300"
$mdb_data_Company = "TestSQL"
$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open("driver={SQL Server};server=" & $mdb_data_Server & ";uid=" & $mdb_data_id & ";pwd=" & $mdb_data_pwd & ";database=" & $mdb_data_Company)
$RS.ActiveConnection = $conn
$RS.Open("SELECT COUNT(*)FROM( select b.name from sysobjects as a, syscolumns as b where a.xtype = 'U' and a.id = b.id and a.name='' )as aWhere name='2019sx'") ;?取?一列的列名?
While (Not $RS.eof And Not $RS.bof) ;循??表 有?料就跑回圈??料就?跳出
$Ai = $RS.Fields(0).value ;此位置真不知道在AU3中是如何用?据集里面的???表?返回值的
$RS.movenext
WEnd
MsgBox(0, "Ai為", $Ai)

kk_lee69 发表于 2019-10-15 22:09:19

本帖最后由 kk_lee69 于 2019-10-15 22:11 编辑

xuanniao110 发表于 2019-10-15 16:32

改一下 語法

SELECT COUNT(*)FROM( select b.name from sysobjects as a, syscolumns as b where a.xtype = 'U' and a.id = b.id and a.name='' )as aWhere name like '2019sx%'
或者

SELECT COUNT(*)FROM( select b.name from sysobjects as a, syscolumns as b where a.xtype = 'U' and a.id = b.id and a.name='' )as aWhereRTRIM(name)='2019sx'

kk_lee69 发表于 2019-10-15 22:14:26

xuanniao110 发表于 2019-10-15 16:32


以這個表來說 這樣的結果是不合理的..........

可以 用 你一開始的SQL 查詢工具查詢 兩個表的結果

select b.name from sysobjects as a, syscolumns as b where a.xtype = 'U' and a.id = b.id and a.name=''

跑這個功能就好...........

或者 使用 SQL 查詢工具直接查詢
SELECT COUNT(*)FROM( select b.name from sysobjects as a, syscolumns as b where a.xtype = 'U' and a.id = b.id and a.name='' )as aWhere name='2019sx'

這樣的結果.....

kk_lee69 发表于 2019-10-15 22:20:33

xuanniao110 发表于 2019-10-15 16:32


方便的話可否 上傳 TETSSQL 資料庫的備份檔案 ........ 方便研究

xuanniao110 发表于 2019-10-16 11:43:21

kk_lee69 发表于 2019-10-15 22:20
方便的話可否 上傳 TETSSQL 資料庫的備份檔案 ........ 方便研究


数据库已经上传请查收

kk_lee69 发表于 2019-10-16 13:04:53

xuanniao110 发表于 2019-10-16 11:43
数据库已经上传请查收

資料庫 是 哪個版本的 SQL 多少的

kk_lee69 发表于 2019-10-16 13:18:36

xuanniao110 发表于 2019-10-16 11:43
数据库已经上传请查收

可不可以採用備份的方式 備份資料庫 請不要直接給我 資料庫檔案我怕 這樣會有一些資訊無法載入

kk_lee69 发表于 2019-10-16 13:23:13

xuanniao110 发表于 2019-10-16 11:43
数据库已经上传请查收

找出原因了 !~~~你的語法錯誤不可以使用''   要使用 '01mon'

xuanniao110 发表于 2019-10-16 13:34:19

kk_lee69 发表于 2019-10-16 13:23
找出原因了 !~~~你的語法錯誤不可以使用''   要使用 '01mon'

果然是   就是这个原因   我现在获取到就是1非常感谢你的帮助   如此之耐心   感谢之情无法言表
页: 1 2 3 [4]
查看完整版本: [已解决]关于查找与判断SQL表中列的存在问题,请指教怎么判断有或者无