请问:
ADO连接SQL Server后,怎样执行建表、查找、插入、更新记录等SQL语句?最好能详细一点,或者有例子。谢谢!

解决方案 »

  1.   

    dim cn as adodb.connection
    .........private sub addtable()
    dim strsql as string 
       strsql="Create Table student" & _
           " id integer, " & _
           " stunaem char(30)" & _
           " Primary key (id)
       cn.excute strsql
    end subprivate sub addnewrec()
    dim rstmp as recordset 
    set rstmp=cn.excute("select * from student")
    rstmp.add
    rs!id=1
    rs!stuname="张三"
    rs.save
    set rstmp=nothing
    end sub 
    private sub findrec
    dim rstmp as recordset 
    set rstmp=cn.excute("select * from student where id=1")
    rstmp.stuname="李四"
            rstmp.save
    set rstmp=nothing
    end sub
      

  2.   

    1、建表格:
    CREATE TABLE table_name( 
    column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY], 
    column2 DATATYPE [NOT NULL],
    ...)
    说明: 
    DATATYPE --是资料的格式,详见表。
    NUT NULL --可不可以允许资料有空的(尚未有资料填入)。
    PRIMARY KEY --是本表的主键。1、增加资料:
    INSERT INTO table_name (column1,column2,...)
    VALUES ( value1,value2, ...)
    说明:
    1.若没有指定column 系统则会按表格内的栏位顺序填入资料。
    2.栏位的资料形态和所填入的资料必须吻合。
    3.table_name 也可以是景观 view_name。INSERT INTO table_name (column1,column2,...)
    SELECT columnx,columny,... FROM another_table
    说明:也可以经过一个子查询(subquery)把别的表格的资料填入。2、查询资料:
    基本查询
    SELECT column1,columns2,...
    FROM table_name
    说明:把table_name 的特定栏位资料全部列出来
    SELECT *
    FROM table_name
    WHERE column1 = xxx 
    [AND column2 > yyy] [OR column3 <> zzz]
    说明:
    1.'*'表示全部的栏位都列出来。
    2.WHERE 之後是接条件式,把符合条件的资料列出来。SELECT column1,column2
    FROM table_name
    ORDER BY column2 [DESC]
    说明:ORDER BY 是指定以某个栏位做排序,[DESC]是指从大到小排列,若没有指明,则是从小到大
    排列组合查询
    组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上的
    表格才能够得到结果的。
    SELECT *
    FROM table1,table2
    WHERE table1.colum1=table2.column1
    说明:
    1.查询两个表格中其中 column1 值相同的资料。
    2.当然两个表格相互比较的栏位,其资料形态必须相同。
    3.一个复杂的查询其动用到的表格可能会很多个。整合性的查询:
    SELECT COUNT (*) 
    FROM table_name
    WHERE column_name = xxx
    说明:
    查询符合条件的资料共有几笔。
    SELECT SUM(column1)
    FROM table_name
    说明:
    1.计算出总和,所选的栏位必须是可数的数字形态。
    2.除此以外还有 AVG() 是计算平均、MAX()、MIN()计算最大最小值的整合性查询。
    SELECT column1,AVG(column2)
    FROM table_name
    GROUP BY column1
    HAVING AVG(column2) > xxx
    说明:
    1.GROUP BY: 以column1 为一组计算 column2 的平均值必须和 AVG、SUM等整合性查询的关键字
    一起使用。 
    2.HAVING : 必须和 GROUP BY 一起使用作为整合性的限制。复合性的查询
    SELECT *
    FROM table_name1
    WHERE EXISTS (
    SELECT *
    FROM table_name2
    WHERE conditions )
    说明:
    1.WHERE 的 conditions 可以是另外一个的 query。
    2.EXISTS 在此是指存在与否。
    SELECT *
    FROM table_name1
    WHERE column1 IN (
    SELECT column1 
    FROM table_name2
    WHERE conditions )
    说明: 
    1. IN 後面接的是一个集合,表示column1 存在集合里面。
    2. SELECT 出来的资料形态必须符合 column1。 其他查询
    SELECT *
    FROM table_name1
    WHERE column1 LIKE 'x%' 
    说明:LIKE 必须和後面的'x%' 相呼应表示以 x为开头的字串。
    SELECT *
    FROM table_name1
    WHERE column1 IN ('xxx','yyy',..)
    说明:IN 後面接的是一个集合,表示column1 存在集合里面。
    SELECT *
    FROM table_name1
    WHERE column1 BETWEEN xx AND yy
    说明:BETWEEN 表示 column1 的值介於 xx 和 yy 之间。 
    更新记录
    Update 表名 set 字段='XXXX' Where ............
      

  3.   

    請你到sql server版裡面問吧!!!
      

  4.   

    --*******************Transact_SQL********************--語 句 功 能
    --資料操作
    SELECT --從資料庫表中檢索資料行和列
    INSERT --向資料庫表添加新資料行
    DELETE --從資料庫表中刪除資料行
    UPDATE --更新資料庫表中的資料
    --資料定義
    CREATE TABLE --創建一個資料庫表
    DROP TABLE --從資料庫中刪除表
    ALTER TABLE --修改資料庫表結構
    CREATE VIEW --創建一個視圖
    DROP VIEW --從資料庫中刪除視圖
    CREATE INDEX --為資料庫表創建一個索引
    DROP INDEX --從資料庫中刪除索引
    CREATE PROCEDURE --創建一個存儲過程
    DROP PROCEDURE --從資料庫中刪除存儲過程
    CREATE TRIGGER --創建一個觸發器
    DROP TRIGGER --從資料庫中刪除觸發器
    CREATE SCHEMA --向資料庫添加一個新模式
    DROP SCHEMA --從資料庫中刪除一個模式
    CREATE DOMAIN --創建一個資料值域
    ALTER DOMAIN --改變域定義
    DROP DOMAIN --從資料庫中刪除一個域
    --資料控制
    GRANT --授予用戶訪問許可權
    DENY --拒絕用戶訪問
    REVOKE --解除用戶訪問許可權
    --事務控制
    COMMIT --結束當前事務
    ROLLBACK --中止當前事務
    SET TRANSACTION --定義當前事務資料訪問特徵
    --程式化SQL
    DECLARE --為查詢設定游標
    EXPLAN --為查詢描述資料訪問計畫
    OPEN --檢索查詢結果打開一個游標
    FETCH --檢索一行查詢結果
    CLOSE --關閉游標
    PREPARE --為動態執行準備SQL 語句
    EXECUTE --動態地執行SQL 語句
    DESCRIBE --描述準備好的查詢---局部變數
    declare @id char(10)
    --set @id = '10010001'
    select @id = '10010001'---總體變數
    ---必須以@@開頭--IF ELSE
    declare @x int @y int @z int
    select @x = 1 @y = 2 @z=3
    if @x > @y
    print 'x > y' --列印字串'x > y'
    else if @y > @z
    print 'y > z'
    else print 'z > y'--CASE
    use pangu
    update employee
    set e_wage =
    case
    when job_level = ’1’ then e_wage*1.08
    when job_level = ’2’ then e_wage*1.07
    when job_level = ’3’ then e_wage*1.06
    else e_wage*1.05
    end--WHILE CONTINUE BREAK
    declare @x int @y int @c int
    select @x = 1 @y=1
    while @x < 3
    begin
    print @x --列印變數x 的值
    while @y < 3
    begin
    select @c = 100*@x + @y
    print @c --列印變數c 的值
    select @y = @y + 1
    end
    select @x = @x + 1
    select @y = 1
    end--WAITFOR
    --例 等待1 小時2 分零3 秒後才執行SELECT 語句
    waitfor delay ’01:02:03’
    select * from employee
    --例 等到晚上11 點零8 分後才執行SELECT 語句
    waitfor time ’23:08:00’
    select * from employee***SELECT***select *(列名) from table_name(表名) where column_name operator value
    ex:(宿主)
    select * from stock_information where stockid = str(nid)
    stockname = 'str_name' 
    stockname like '% find this %' 
    stockname like '[a-zA-Z]%' --------- ([]指定值的範圍)
    stockname like '[^F-M]%' --------- (^排除指定範圍)
    --------- 只能在使用like關鍵字的where子句中使用通配符)
    or stockpath = 'stock_path'
    or stocknumber < 1000
    and stockindex = 24
    not stocksex = 'man'
    stocknumber between 20 and 100
    stocknumber in(10,20,30)
    order by stockid desc(asc) --------- 排序,desc-降冪,asc-昇冪
    order by 1,2 --------- by列號
    stockname = (select stockname from stock_information where stockid = 4)
    --------- 子查詢
    --------- 除非能確保內層select只返回一個行的值,
    --------- 否則應在外層where子句中用一個in限定符
    select distinct column_name form table_name --------- distinct指定檢索獨有的列值,不重複
    select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
    select stockname , "stocknumber" = count(*) from table_name group by stockname
    --------- group by 將表按行分組,指定列中有相同的值
    having count(*) = 2 --------- having選定指定的組select * 
    from table1, table2 
    where table1.id *= table2.id -------- 左外部連接,table1中有的而table2中沒有得以null表示
    table1.id =* table2.id -------- 右外部連接 select stockname from table1
    union [all] ----- union合併查詢結果集,all-保留重複行
    select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
    value (select Stockname , Stocknumber from Stock_table2)---value為select語句***update***update table_name set Stockname = "xxx" [where Stockid = 3]
    Stockname = default
    Stockname = null
    Stocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3
    truncate table_name ----------- 刪除表中所有行,仍保持表的完整性
    drop table table_name --------------- 完全刪除表***alter table*** --- 修改資料庫表結構alter table database.owner.table_name add column_name char(2) null .....
    sp_help table_name ---- 顯示表已有特徵
    create table table_name (name char(20), age smallint, lname varchar(30))
    insert into table_name select ......... ----- 實現刪除列的方法(創建新表)
    alter table table_name drop constraint Stockname_default ---- 刪除Stockname的default約束***function(/*常用函數*/)***----統計函數----
    AVG --求平均值
    COUNT --統計數目
    MAX --求最大值
    MIN --求最小值
    SUM --求和--AVG
    use pangu
    select avg(e_wage) as dept_avgWage
    from employee
    group by dept_id--MAX
    --求工資最高的員工姓名
    use pangu
    select e_name
    from employee
    where e_wage =
    (select max(e_wage)
    from employee)--STDEV()
    --STDEV()函數返回運算式中所有資料的標準差--STDEVP()
    --STDEVP()函數返回總體標準差--VAR()
    --VAR()函數返回運算式中所有值的統計變異數--VARP()
    --VARP()函數返回總體變異數----算術函數----/***三角函數***/
    SIN(float_expression) --返回以弧度表示的角的正弦
    COS(float_expression) --返回以弧度表示的角的余弦
    TAN(float_expression) --返回以弧度表示的角的正切
    COT(float_expression) --返回以弧度表示的角的餘切
    /***反三角函數***/
    ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角
    ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角
    ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角
    ATAN2(float_expression1,float_expression2) 
    --返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
    DEGREES(numeric_expression)
    --把弧度轉換為角度返回與運算式相同的資料類型可為
    --INTEGER/MONEY/REAL/FLOAT 類型
    RADIANS(numeric_expression) --把角度轉換為弧度返回與運算式相同的資料類型可為
    --INTEGER/MONEY/REAL/FLOAT 類型
    EXP(float_expression) --返回運算式的指數值
    LOG(float_expression) --返回運算式的自然對數值
    LOG10(float_expression)--返回運算式的以10 為底的對數值
    SQRT(float_expression) --返回運算式的平方根
    /***取近似值函數***/
    CEILING(numeric_expression) --返回>=運算式的最小整數返回的資料類型與運算式相同可為
    --INTEGER/MONEY/REAL/FLOAT 類型
    FLOOR(numeric_expression) --返回<=運算式的最小整數返回的資料類型與運算式相同可為
    --INTEGER/MONEY/REAL/FLOAT 類型
    ROUND(numeric_expression) --返回以integer_expression 為精度的四捨五入值返回的資料
    --類型與運算式相同可為INTEGER/MONEY/REAL/FLOAT 類型
    ABS(numeric_expression) --返回運算式的絕對值返回的資料類型與運算式相同可為
    --INTEGER/MONEY/REAL/FLOAT 類型
    SIGN(numeric_expression) --測試參數的正負號返回0 零值1 正數或-1 負數返回的資料類型
    --與運算式相同可為INTEGER/MONEY/REAL/FLOAT 類型
    PI() --返回值為π 即3.1415926535897936
    RAND([integer_expression]) --用任選的[integer_expression]做種子值得出0-1 間的隨機浮點數