我有这样子的一个表:
id,name,   num,vertex,  layer,penwidth,penstyle,pencoler
1  陇海西路   2    <Binary>   15      1         191     16748097
2  陇海南路   23    <Binary>   15      1         191     16748097
3..................................................................
等等,将近300个记录左右,那么我能不能将这些记录存入一个数组中,让再存入数据库中,让他变成一个记录?或者是直接将它们变成一个记录?求求大家帮帮忙,说思路也行!

解决方案 »

  1.   

    --存入数组是不可能的,SQL SERVER中没有数组的概念
    --可以存如XML中
    --
    SELECT EmployeeID, Photo 
    FROM Employees 
    WHERE EmployeeID = 1
    FOR XML AUTO  --采用FOR XML AUTO
      

  2.   

    这是一个点表集,就是让id,name,   num,vertex,  layer,penwidth,penstyle,pencoler这些东西里的内容全部存入一个image或text的字段中。
      

  3.   

    DengXingJie(杰西),恩,我就是那个意思!
      

  4.   

    可以用TAB键或回车键分开每个字段,放在一个你要放的字段内。取得时候用chr(10)chr(9)区分。
      

  5.   

    问题是我的那个vertex里面有时候就有200或300个点
      

  6.   

    SELECT CAST(id AS NVARCHAR(50))+name+num+vertex+layer+penwidth+penstyle+coler
    FROM 表然后在程序里面把每条记录都+起来,用读流的形式存储到image中或者用游标把每条记录+起来,不过还是要用程序存储成image的
    因为在SQL里面只允许binary,varbinary,char,varchar,text转换成image
    只能用程序转换
    如果你能把你的记录都转换成varchar或者char就可以在SQL里面存了个人愚见
      

  7.   

    用游标循环的例子:
    declare @id int
    declare my_cursor cursor for
    select id from tbla
    open my_cursor
    fetch next from my_cursor into @id
    while(@@fetch_status=0)
    begin
      select @id
      fetch next from my_cursor into @id
    End
    close my_cursor
    deallocate my_cursor
      

  8.   

    不用游标做循环的例子:
    SET NOCOUNT ON
    DECLARE @iNextRowId int,@iCurrentRowId int,@iLoopControl int,@ID int
    -- Initialize variables!
    SELECT @iLoopControl = 1
    SELECT @iNextRowId = MIN(id) FROM tblA
    -- Make sure the table has data.
    IF ISNULL(@iNextRowId,0) = 0
    BEGIN
          SELECT 'No data in found in table!'
          RETURN
    END
    -- Retrieve the first row
    SELECT @iCurrentRowId = id,@id = ID FROM tblA WHERE id = @iNextRowId
    -- start the main processing loop.
    WHILE @iLoopControl = 1
    BEGIN
         -- This is where you perform your detailed row-by-row
         -- processing.     
         -- Reset looping variables.  
        SELECT 'A'          
        SELECT   @iNextRowId = NULL            
        -- get the next iRowId
        SELECT   @iNextRowId = MIN(id)FROM tblA WHERE ID > @iCurrentRowId
        -- did we get a valid next row id?
        IF ISNULL(@iNextRowId,0) = 0
        BEGIN
          BREAK
        END
        -- get the next row.
        SELECT  @iCurrentRowId = ID,@ID = ID FROM tblA WHERE   ID = @iNextRowId            
    END
    RETURN
    ST NOCOUNT OFF