header1   header
header
header Register : : Login header
header
connector   connector
menuleft menuright
submenu   submenu
left
How get data from a column of a table and put in a variable?
Last Post 15 Oct 2009 06:01 AM by Sean. 6 Replies.
Printer Friendly
  •  
  •  
  •  
  •  
  •  
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages
George GustavoUser is Offline
New Member
New Member
Posts:10
Avatar

--
16 Sep 2009 01:35 PM
    I need help to create a script.
    The script gets a data of determinate column of a table in my database and store in a variable.
    Somebody Help's me?
    thanks
    Chad MillerUser is Offline
    Basic Member
    Basic Member
    Posts:160
    Avatar

    --
    16 Sep 2009 02:25 PM

    To do this, I'll use simple function in my script:

    #######################
    function Get-SQLData
    {
        param(
        [string]$serverName,
        [string]$databaseName,
        [string]$query
        )

        Write-Verbose "Get-ISData serverName:$serverName databaseName:$databaseName query:$query"

        $connString = "Server=$serverName;Database=$databaseName;Integrated Security=SSPI;"
        $da = New-Object "System.Data.SqlClient.SqlDataAdapter" ($query,$connString)
        $dt = New-Object "System.Data.DataTable"
        [void]$da.fill($dt)
        $dt

    } #Get-SQLData


    Then I will call the function within the same script:

    Get-SqlData "Z002\SQL2K8" "pubs" "select au_id from authors" | foreach {$_.au_id }

    George GustavoUser is Offline
    New Member
    New Member
    Posts:10
    Avatar

    --
    18 Sep 2009 12:39 PM

    Hi, thanks for the script, but I have a problem for understand the third parameter $query.
    what is au_id and authors?
    if you can explain for me, I will be very hapy.

    Thanks.

    George GustavoUser is Offline
    New Member
    New Member
    Posts:10
    Avatar

    --
    18 Sep 2009 02:00 PM
    $SQLSERVER=read-host "Enter SQL Server Name:"
    $Database=read-host "Enter Database Name:"
    $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
    $SqlConnection.ConnectionString = "Server=$SQLSERVER;Database=$DATABASE;Integrated Security=True"
    $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
    $SqlCmd.CommandText = "select name from sysobjects where type='u'"
    $SqlCmd.Connection = $SqlConnection
    $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
    $SqlAdapter.SelectCommand = $SqlCmd
    $query="select usuarios from usuarios" | foreach {$_.usuarios}
    Write-Verbose "Get-ISData serverName:$serverName databaseName:$databaseName query:$query"
    $da = New-Object "System.Data.SqlClient.SqlDataAdapter" ($query,$SqlConnection)
    $dt = New-Object "System.Data.DataTable"
    [void]$da.fill($dt)
    $dt
    $SqlConnection.Close()


    tables name is: usuarios
    columns name is: usuarios
    but return this error:
    Exception callin "fill" with "1" argument(s): "ExecuteReader: CommandText property has not been At C:\sql.ps1:16 char:16
    +          [void]$da.fill( (((( $dt)

    help me correct this error!
    Chad MillerUser is Offline
    Basic Member
    Basic Member
    Posts:160
    Avatar

    --
    18 Sep 2009 02:19 PM
    au_id is my example column name and authors an example table name. Both are from the sample database pubs provided by Microsoft. Since you didn't provide your column name or table name, I had to make up an example.
    Chad MillerUser is Offline
    Basic Member
    Basic Member
    Posts:160
    Avatar

    --
    18 Sep 2009 02:24 PM
    Posted By ggmt89 on 18 Sep 2009 02:00 PM
    $SQLSERVER=read-host "Enter SQL Server Name:"
    $Database=read-host "Enter Database Name:"
    $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
    $SqlConnection.ConnectionString = "Server=$SQLSERVER;Database=$DATABASE;Integrated Security=True"
    $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
    $SqlCmd.CommandText = "select name from sysobjects where type='u'"
    $SqlCmd.Connection = $SqlConnection
    $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
    $SqlAdapter.SelectCommand = $SqlCmd
    $query="select usuarios from usuarios" | foreach {$_.usuarios}
    Write-Verbose "Get-ISData serverName:$serverName databaseName:$databaseName query:$query"
    $da = New-Object "System.Data.SqlClient.SqlDataAdapter" ($query,$SqlConnection)
    $dt = New-Object "System.Data.DataTable"
    [void]$da.fill($dt)
    $dt
    $SqlConnection.Close()


    tables name is: usuarios
    columns name is: usuarios
    but return this error:
    Exception callin "fill" with "1" argument(s): "ExecuteReader: CommandText property has not been At C:\sql.ps1:16 char:16
    +          [void]$da.fill( (((( $dt)

    help me correct this error!

    This is somewhat odd, $query="select usuarios from usuarios" | foreach {$_.usuarios}. You should just set $query to a string i.e.

    $query="select usuarios from usuarios" 

    Get rid of the | foreach {$_usarios} part. I haven't test the entire thing. Post back any errors after making this change first.
    SeanUser is Offline
    New Member
    New Member
    Posts:4
    Avatar

    --
    15 Oct 2009 06:01 AM
    I believe the script the in the link can help. Although i don't really understand it...

    http://www.powershell.nu/2009/01/27...owershell/
    You are not authorized to post a reply.


    Active Forums 4.3
    right
    footer   footer
    footer Sponsored by Quest Software • SAPIEN Technologies • Compellent • Microsoft Windows Server 2008 R2 footer
    footer   footer