kk_lee69 发表于 2019-10-15 13:10:57

不要亂改我給你的語法 請先 把 中文字的地方改成 你的 資料表名稱你就懂意思

xuanniao110 发表于 2019-10-15 13:14:10

kk_lee69 发表于 2019-10-15 13:10
不要亂改我給你的語法 請先 把 中文字的地方改成 你的 資料表名稱你就懂意思


kk_lee69 发表于 2019-10-15 13:18:34

xuanniao110 发表于 2019-10-15 13:14


你有看到 你只有IDRQ2018CS2018SX那不就會知道 你缺了 2019 嗎??

你是這個意思嗎??

xuanniao110 发表于 2019-10-15 13:20:09

kk_lee69 发表于 2019-10-15 13:18
你有看到 你只有IDRQ2018CS2018SX那不就會知道 你缺了 2019 嗎??

你是這個意思嗎??

这个是列出了数据表01mon所有列名   你的意思是让我用 2019sx来对比这列出来的所有列名   如果没有就创建有就执行保存?

kk_lee69 发表于 2019-10-15 13:22:12

xuanniao110 发表于 2019-10-15 13:20
这个是列出了数据表01mon所有列名   你的意思是让我用 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 aWhere name='2019CX'

返回0就是 沒有返回 1就是有

kk_lee69 发表于 2019-10-15 13:27:05

xuanniao110 发表于 2019-10-15 13:20
这个是列出了数据表01mon所有列名   你的意思是让我用 2019sx来对比这列出来的所有列名   如果没有就创建 ...

這樣 你的疑問 解決了嗎

xuanniao110 发表于 2019-10-15 13:36:58

kk_lee69 发表于 2019-10-15 13:22
當然阿............這是方法一

也可以變化一下啊方法二


我想要你的第二种方法   我不想去遍列数据表的列名

kk_lee69 发表于 2019-10-15 13:38:12

這樣 後面的你想做的 都有辦法解決了嗎??

xuanniao110 发表于 2019-10-15 13:39:04

kk_lee69 发表于 2019-10-15 13:38
這樣 後面的你想做的 都有辦法解決了嗎??

现在就是第二种方法不晓得怎么来获取啊   那返回值

kk_lee69 发表于 2019-10-15 13:40:19

..................你的AU3程式 我看看??

kk_lee69 发表于 2019-10-15 13:46:02

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

xuanniao110 发表于 2019-10-15 13:39
现在就是第二种方法不晓得怎么来获取啊   那返回值
$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='2019CX'" )
      While (Not $RS.eof And Not $RS.bof);迴圈讀表
      $Ai=$RS.Fields(0).value
                $RS.movenext;跳出迴圈
      WEnd;結束迴圈讀表
$RS.close;關閉數據分表
IF $Ai = 0 Then
      MsgBox(0,"","沒有這個2019CX欄位")
ELSE
      MsgBox(0,"","有這個2019CX欄位")
EndIf


請參考
http://www.autoitx.com/forum.php?mod=viewthread&tid=30083&highlight=SQL

xuanniao110 发表于 2019-10-15 14:29:16

kk_lee69 发表于 2019-10-15 13:46
$RS.open ("SELECT COUNT(*)FROM( select b.name from sysobjects as a, syscolumns as b where a.xt ...

$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
MsgBox(0, "判断值", $pdz)
If $pdz = 0 Then
$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("ALTER TABLE [" & $mon & "mon" & "] ADD [" & $sxlm & "] FLOAT DEFAULT 'null'")
$RS.Open("ALTER TABLE [" & $mon & "mon" & "] ADD [" & $cslm & "] FLOAT DEFAULT 'null'")
$conn.close
MsgBox(0, "创建成功", "!!!!!!!")
bc()
Else
bc()
EndIf
EndIf

这样出来的$pdz不管你是有2019sx列还是没有2019sx列   它的值都是0

xuanniao110 发表于 2019-10-15 14:32:01

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

kk_lee69 发表于 2019-10-15 13:46
$RS.open ("SELECT COUNT(*)FROM( select b.name from sysobjects as a, syscolumns as b where a.xt ...
如图   查询出来的值依然是0

kk_lee69 发表于 2019-10-15 14:35:21

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


$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
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

xuanniao110 发表于 2019-10-15 14:56:04

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

依然一样   判断值还是0不管是有列还是没列
页: 1 2 [3] 4
查看完整版本: [已解决]关于查找与判断SQL表中列的存在问题,请指教怎么判断有或者无