Retrieving Variant Column Datatype Using SQLColAttrubute
Jan 11, 2008
Hi,
When i try to retirve the datatype of a variant column using SQLColAttribute, the datatype comes back as SQL_BINARY(-2) instead of a CHAR based type. To reproduce the problem, add extended property 'MS_Description' to either a column or a table. Assign a text value to the property.
Execute the following query and verify. SELECT value FROM sys.extended_properties WHERE name = 'MS_Description'
I'm using SQL Server 2005 sp 2 with Visual Studio 2005.
Here is the code i use -
Code Block
SQLHENV m_SQLEnvironment;
SQLHDBC m_SQLConnection;
SQLHSTMT m_SQLStatement;
SQLRETURN iReturn;
CString sConnectionString = _T("DRIVER={SQL Native Client};SERVER=YourServer;DATABASE=YourDatabase;Trusted_Connection=yes;");
CString sQuery = _T("SELECT value FROM sys.extended_properties WHERE name = 'MS_Description'") ;
iReturn = SQLAllocHandle( SQL_HANDLE_ENV,SQL_NULL_HANDLE,&m_SQLEnvironment);
iReturn = SQLSetEnvAttr(m_SQLEnvironment,SQL_ATTR_ODBC_VERSION,(SQLPOINTER) SQL_OV_ODBC3,0);
iReturn = SQLAllocHandle(SQL_HANDLE_DBC,m_SQLEnvironment,&m_SQLConnection);
iReturn = SQLAllocHandle(SQL_HANDLE_STMT, m_SQLConnection, &m_SQLStatement );
SQLCHAR szwOutputConnectionString[800];
SQLSMALLINT nOutputStringLength = 0;
SQLUSMALLINT nDriverCompletion = SQL_DRIVER_NOPROMPT;
iReturn = SQLDriverConnect( m_SQLConnection, m_hWnd, (SQLCHAR*)(LPCSTR)sConnectionString, SQL_NTS, szwOutputConnectionString, 800, &nOutputStringLength, nDriverCompletion );
iReturn = SQLAllocHandle( SQL_HANDLE_STMT,m_SQLConnection,&m_SQLStatement);
iReturn = SQLPrepare( m_SQLStatement, (SQLCHAR*)(LPCSTR)sQuery , SQL_NTS );
iReturn = SQLExecute( m_SQLStatement );
iReturn = SQLFetch( m_SQLStatement );
SQLINTEGER nType = 0;
SQLSMALLINT nDummyInt = 0;
//get the datatype of the variant
iReturn = SQLColAttribute( m_SQLStatement, (SQLUSMALLINT) 1, SQL_CA_SS_VARIANT_TYPE, NULL, NULL, &nDummyInt, &nType );
After the execution of SQLColAttribute, nType value is assigned a value of -2 (SQL_BINARY) instead of a CHAR based type. What am i doing wrong? Any help is appreciated.
Regards,
Venkat
View 1 Replies
ADVERTISEMENT
Jun 11, 2007
I know I can iterate through the schema table using the following.
Can I grab the actual value of each field while looping through the rows and columns?
schemaTable = reader.GetSchemaTable();
foreach (DataRow myDataRow in schemaTable.Rows)
{
foreach (DataColumn myDataColumn in schemaTable.Columns)
{
Console.WriteLine(myDataColumn + "= " + myDataRow[myDataColumn.ColumnName].ToString() );
}
}
An example is if one of the columns in the schema is called Firstname I would like to return:
Row 1
column name = Firstname
value= Bob
column name = Lastname
value= Smith
Row 2
column name = Firstname
value= Greg
column name = Lastname
value= Jones
View 3 Replies
View Related
Oct 8, 2007
Hi,
I have a table with 3 colums and col1 and col2 are datetime columns as follows
ID Col1 Col2
----------------------------------------
1 D1 NULL
2 D2 D3
3 NULL D4
I want to retrive the ID along with the latest date from either of remaining columns.
Can any one let me know the query please??
~Mohan
View 6 Replies
View Related
Jul 26, 2007
I have a database that has a tble with a field that autoincrements as a primary key. meanig that the field type is BigInteger and it is set up as my Identity Column. Now when I insert a new record that field gets updated automaticly.
How can I get this value in the same operation as my insert? meaning, in 1 sub, I insert a new record but then need to retieve the Identity Value. All in the same procedure.
Waht is the way to achive this please?
Marc
View 2 Replies
View Related
Dec 3, 2007
As part of a web site I allow users to store documents in SQL Server 2000 using an Image column on a table. After the file is saved the user can open the document through the browser. This works great for most file extensions such as ".XLS" or ".DOC" but fails when attempting to open ".MSG" files (saved outlook messages). XLS documents will open in Excel and DOC documents open in Word, but MSG documents open in Notepad and display what appears to be binary data. I'm trying to figure out if this is a SQL Server issue or some sort of ASP/ASP.NET webserver issue.
If I attempt to open an MSG file stored directly on the web server, the file opens correctly using the "Microsoft Outlook View Control", but when attempting to open the same file saved in SQL Server, it attempts to open in notepad.
Any ideas?
View 2 Replies
View Related
Jun 12, 2006
Not sure if this is the correct forum, but I 'm having problems retrieving a sqldatasource's asp:control parameter values from a selected row (during edit) in a gridview to update a record thru a stored procedure. The stored procedure is pretty intense, so I'd like to keep it in SQL if possible instead of creating the generic "update table set ..." that I see in most examples. It seems as if I can't get the propertyname right or something because it keeps giving me a "Procedure or function XX has too many arguments specified error". Maybe the DataKeyNames is not right?? I've tried just passing one parameter (ProductID-same as DataKeyNames) using "SelectedValue" as propertyname and still get the same. It's got to be something very simple, but I'm at a loss. All parameters are spelled the same in the sp (with an added "@" at start) as in the asp:controlparameters. Here's the gridview (asp.net 2.0 connecting to SQL Server 2005):
<asp:GridView ID="gvLoadEditProductPrices" runat="server" AutoGenerateColumns="False" AllowSorting="True" DataSourceID="SqlDataSource1" DataKeyNames="ProductID">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="ProductID" HeaderText="ProductID" HeaderStyle-BackColor="white" InsertVisible="False"
ReadOnly="True" SortExpression="ProductID" />
<asp:BoundField DataField="Product" HeaderText="Product" SortExpression="Product" ReadOnly="True" />
<asp:BoundField DataField="ProductCat" HeaderText="ProductCat" SortExpression="ProductCat" ReadOnly="True" />
<asp:BoundField DataField="VarRate" HeaderText="VarRate" SortExpression="VarRate" />
<asp:BoundField DataField="loadid" HeaderText="loadid" InsertVisible="False" ReadOnly="True"
SortExpression="loadid" />
<asp:BoundField DataField="loadamount" HeaderText="loadamount" SortExpression="loadamount" ReadOnly="True" />
<asp:BoundField DataField="ProductCol" HeaderText="ProductCol" SortExpression="ProductCol" ReadOnly="True" />
<asp:BoundField DataField="PageID" HeaderText="PageID" SortExpression="PageID" ReadOnly="True" />
</Columns>
</asp:GridView>
and the sqldatasource's info:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MARSProductEditor %>" ProviderName="System.Data.SqlClient" SelectCommand="spGetLoadEditProductPrices" SelectCommandType="StoredProcedure" UpdateCommand="spUpdateProductPrices" UpdateCommandType="StoredProcedure" >
<UpdateParameters>
<asp:ControlParameter Name="ProductID" Type="Int32" ControlID="gvLoadEditProductPrices" PropertyName=SelectedDataKey.Values("ProductID")></asp:ControlParameter>
<asp:ControlParameter Name="LoadID" Type="Int32" ControlID="gvLoadEditProductPrices" PropertyName=SelectedDataKey.Values("LoadID")></asp:ControlParameter>
<asp:ControlParameter Name="PageID" Type="Int32" ControlID="gvLoadEditProductPrices" PropertyName=SelectedDataKey.Values("PageID")></asp:ControlParameter>
<asp:ControlParameter Name="ProductCol" Type="Int32" ControlID="gvLoadEditProductPrices" PropertyName=SelectedDataKey.Values("ProductCol")></asp:ControlParameter>
<asp:ControlParameter Name="NewRate" Type="Double" ControlID="gvLoadEditProductPrices" PropertyName=SelectedDataKey.Values("NewRate")></asp:ControlParameter>
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter ControlID="ddlEstLoadsPerAcre" Name="LoadID" PropertyName="SelectedValue"
Type="Int32" />
<asp:ControlParameter ControlID="txtEditType" Name="PageName" PropertyName="Text"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>
TIA,
John
View 1 Replies
View Related
Mar 11, 2015
I am using following queries in a stored procedure.This stored procedure is executed through a dot net application.
DECLARE @DEPTNBR BIGINT
SELECT @DEPTNBR = DEPTNBR
FROM DEPARTMENT_DETAILS WITH (UPDLOCK,READPAST)
WHERE STATUS= 1
UPDATE DEPARTMENT_DETAILS SET STATUS= 0 WHERE DEPTNBR = @DEPTNBR
SELECT DEPTNBR,DEPTNAME,DEPTLOC FROM DEPARTMENT_DETAILS WHERE DEPTNBR = @DEPTNBR
From my queries,I am providing a available department information.Each user needs to get unique available department information.But when more number of users using the application concurrently, multiple users getting same department information.How to solve my problem?I always wants to get unique department information even though multiple users using the application concurrently.
View 6 Replies
View Related
Feb 13, 2008
Hi, I was wondering if there is a method (other than BULK INSERT) to insert a (C++) application level array into the database, I have a variant type array populated with values that I want to insert, possibly using ADO Objects, in quick time!
View 1 Replies
View Related
Jan 9, 2005
Hi folks, need ur help.
I want to convert strings from a textfile and convert em to appropriate datatype for the destination columns, eg if i have a source value in string 11111 and the destination column is MONEY. I want to use CONVERT(functionretruningdatatype,'11111') in my insert statement.
Any guidance!
Howdy!
View 1 Replies
View Related
Feb 18, 2012
Nz(variant [, valueifnull ] ) is the syntax.
If the value of variant isn't Null, then the Nz function returns the value of variant.
Can I return a custom value if the variant isnt null?
View 5 Replies
View Related
May 12, 2004
I have a user who uses the sql variant data type. Currently the database he uses is read only and he has noticed a lot of "garbage" in the column in the last few days. A dbcc shows no corruption and the user is following the rules of the sql variant data type as far as we know.
One last thing, he never had this problem on AS 2000.
config: :confused:
SQL 2000 SP3 on Windows Server 2003
View 2 Replies
View Related
Jul 19, 2007
In the following code snippet, the stored procedure executes up to the
iRet = vciSqlCommand.ExecuteNonQuery();
command and fails with error:
System.Data.SqlClient.SqlException: Incorrect syntax near 'value'.
That would point to the
" = @data_Param where
section.
So what is the proper syntax?
Code Snippet
SqlParameter data_Param = new SqlParameter("@data_Param", SqlDbType.Variant);
SqlCommand vciSqlCommand = new SqlCommand();
switch ((vcidatatype)FieldDef.ivcidatatype)
{ // read in the binary data!!!!!!
case vcidatatype.eENGUNITS: data_Param.Value = Encoding.ASCII.GetString(r.ReadBytes(FieldDef.iLen)); break;
case vcidatatype.eLANADR: data_Param.Value = r.ReadInt16(); break;
case vcidatatype.eBYTESIZE: data_Param.Value = r.ReadByte(); break;
case vcidatatype.eFLOATSIZE: data_Param.Value = r.ReadSingle(); break;
case vcidatatype.eINT32SIZE: data_Param.Value = r.ReadUInt32(); break;
case vcidatatype.eFILLERBYTES: r.ReadBytes(FieldDef.iLen); break; // eat up empty bytes
default: FieldDef.ivcidatatype = (Int32)vcidatatype.eFILLERBYTES; break;
}
if (FieldDef.ivcidatatype != (Int32)vcidatatype.eFILLERBYTES)
{ // all but filler
vciSqlCommand.CommandText =
"update " + acPointType + "set " + FieldDef.sFldName +
" = @data_Param where VEC = " + acVECName +
" and name = " + acPointName;
vciSqlCommand.Connection = conn;
conn.Open();
iRet = vciSqlCommand.ExecuteNonQuery();
conn.Close();
View 1 Replies
View Related
Jul 3, 2004
I want get DataType of Column in Table
ex: nvarchar, varchar, etc...
Help me !!
View 2 Replies
View Related
Dec 12, 2005
I've changed the width of a column from 128 to 64. How to EM shows 64, while sysobjects and sp_help show 128 ?? Even after disconnecting and re-connecting (just to be extra sure).
View 2 Replies
View Related
Dec 2, 2006
Hello I am having a table
table1
col1 (bit)
and i want to changethe col1 type for smallint
col1 (smallint)
true will be = 1
and false = 0
how can i do it ??
thank you
View 3 Replies
View Related
Feb 12, 2014
I'm using this query to sum the values. The cost column is a float datatype and what could I differently do here to sum the cost. I'm unable to sum the cost.
Also is there any way I change the datatype to int for Cost column without losing the data.
select ID, MAX(Date) Date, SUM(Cost) Cost, MAX(Funding) Funding from Application
group by ID
View 4 Replies
View Related
May 9, 2008
Hi,
I have a data flow task where I have mutiple columns (of different data types) , I want to create a single column using all these columns in XML format and load it into a table with a column of datatype XML. Can I accomplish this using Derived column tranformation?
Thanks
View 17 Replies
View Related
Nov 19, 2004
I am trying to declare a global variable in a DTS package for passing the recordset to the next stage Active Script . After declaration of the Global Variable and selecting datatype of the variable as OTHER ( Variant ) , when I try to save the DTS Package changes , it throws a Type Mismatch Error .
:confused: Please help me out .
Thanx
Arnie .
View 1 Replies
View Related
Apr 3, 2008
Can anyone help on this?
In SQL 2005, I use a variant with XML type; it seems that its size is limited here. If I assign a big data to it, it appears not assigned at all. Here is the example:
Code Snippet
declare @xml xml
--cross two table to get many records returned, if nothing is abnormal, just cross more tables here
select * from master.sys.objects a, master.sys.objects b for xml RAW, ELEMENTS
set @xml=( select * from master.sys.objects a, master.sys.objects b for xml RAW, ELEMENTS )
select @xml
--no results here for var @xml
--use single table to get fewer records returned.
select * from master.sys.objects for xml RAW, ELEMENTS
set @xml=( select * from master.sys.objects for xml RAW, ELEMENTS )
select @xml
--results as normal.
Note:here I don't want to test SQL server, I just use XML type variant as oupput for a sproc, and come across the issue here.
Any reply will be appreciated!
View 4 Replies
View Related
Apr 1, 2008
HI, Guys:
I've some AT_DATE tables (eg: AT_20080401, AT_20080402, ...) in SQLServer DB, and these AT_XX table have same columns. but table count could be variant, so I have to query sysobjects to get all of these tables. like this:
select name from sysobject where name like 'AT_%'
Now I try to create a view AT which is the union of all these AT_XX tables, such as:
Code Snippet
Create View AT as
select * from AT_20080401
union
select * from AT_20080402
union ...
but since I'm not sure how many tables there, it would be impossible to write SQL as above.
though I could get this union result via stored-procedure, view couldn't be created on the resultset of a procedure.
Create View AT as
select * from AT_createView() <-- AT_createView must be a function, not procedure
I've checked msdn, there is Multi-statement table-valued function, but this function type seems to create one temporary table, I don't want to involve much of insert operation because there could be more than 1million records totally in these AT_XX tables.
So is there any way to achived my goal?
any reference would be appreciated, thanks !
View 8 Replies
View Related
Jan 21, 2007
hi ,How can I find sql Datatype (like NVARCHAR , DESIMAL & .. ) and size of columns and also is it Identity or not in a Table of SQl server?
View 4 Replies
View Related
Jul 30, 2007
Hello,How do I change the datatype of a column in a CSV file. Preferably in the select statement (apparently Cast, Convert, & Replace functions don't work when selecting from a CSV). I have a page where users upload their CSV files to and then I use SQLBulkCopy to insert all the records into my sql table. The problem is with columns of money data. EX: "$2,000" >> 2000The CSV file interprets the "$2,000" as a string of text. How do I convert it to a decimal so I can insert it into my sql database?
View 4 Replies
View Related
Mar 12, 2008
Hi all
A table consists of a column with name "Createddate" with datatype smalldatetime.
defaultly iam binding getdate() to Createddateso it is storing in tthe below format --
Mar 12 2008 11:38AM
while retreving iam mentioning...
select * from tbl where convert(varchar,createddate,101) = '03/12/2008'
it is showing no records ..even though records r there with --march 12 2008.
plz do needful in this senario.
thanks & regards
kanth
View 2 Replies
View Related
Aug 7, 2004
Hi everyone....
I need a column in my table that its DataType should be as integer arrays how can I implemant it in my sqlserver table.
Any help appreciated.
View 5 Replies
View Related
Oct 27, 2003
Hi guys,
Is there any way or method to CHANGE the DATATYPE of a column in a published table being used for transactional replication (MSSQL 2000), WITHOUT DROPPING THE SUBSCRIPTION ????
Im stuck in this mess and do have the option to drop the subscription, alter the table, create the subscription and rerun the snapshot or to recreate it by Manual Synchronisation either.
Can anyone help? Has anyone been across this dilemma before and have troubleshooted the problem? If yes, help is much appreciated.
MY PROBLEM:
~~~~~~~~~~~~~
'MyTable' is currently being published and has subscriptions to it. The PRIMARY KEY column 'id' has an Identity property as well. 'id' is of datatype smallint, however because of bad planning, i now need to change that datatype to an integer to support a larger range WITHOUT DROPPING SUBSCRIPTIONS.
I CANT DROP THE COLUMN EITHER AS IT IS BEING THE PRIMARY KEY COLUMN.
IS THERE ANY OTHER WAY I CAN DO TO ARCHIEVE MY GOAL? THANKYOU.
View 3 Replies
View Related
Jul 22, 2006
Hi,
How do we find the "column name" and "data type" of all the columns in a table. Assuming that I know the Table name or Table Object ID. I am using Microsoft SQL Server 2000.
Thanks
-Sudhakar
View 3 Replies
View Related
Oct 15, 2015
I am trying to make the following update: All the columns are fine except for the 'name' column. datatype for 'name' column in the target table is varchar(30) and the datatype for 'name' in the sourcetable is varchar(40), I cannot change the datatype of the column 'name' to varchar(40) because I am told it may affect performance. what I want to do is just update the first 'name' column of the target table by the first 30 characters of the source table column 'name'
I am using the following query, is it possible to do it or are there any other ways I can update the column without changing the datatype?
MERGE INTO [S].[dbo].[AF_Copy] AS TargetTable
USING (SELECT source_code, name, addr1, city, zip FROM
[D].[D_TEST].[dbo].[SO_Copy]) AS SourceTable
ON ([TargetTable].[Code] = [SourceTable].[source_code])
[code]...
View 3 Replies
View Related
Dec 20, 2013
I am having Test table with (id int , DataDescription xml) . I need to read the values from DataDescription column and insert into one table.
View 2 Replies
View Related
Jun 14, 2007
Hi,
i am trying to load output of count(X) and sum(salesamt) into the same column. if iam using transformation data task what datatype should i be converting the two outputs to accomidate result as
10.00 --count
234.00 --saleamt
22.00 --count
1000.00 --saleamt
View 3 Replies
View Related
Dec 20, 2005
Hello. I using a simply SELECT statement to retrieve some data from aSQL SERVER via an ODBC connection. I had to go from VARCHAR to TEXTbecause the amount of data. Anyway, my SQL statements worked just finewhen I was using VARCHAR, but now since I am using TEXT, I am onlyreceiving part of the content back. Do I have to do some sort ofspecial Casting or something if I want to get all the content back?It's over 8,000 characters. Thank you very much. I have racking mybrain on this for a while.
View 8 Replies
View Related
Apr 21, 2006
Here is my expression in a derived component:
"Failed insert into PONL_WELL. WELL_NO=" + (DT_WSTR,10)PROP_NO
PROP_NO comes from ms sql server , and the derived component datatype for this column is DT_WSTR.
The destination will be ms sql server, and i have a data conversion after the derived component to cast from DT_WSTR to DT_STR.
However, the derived component failed everytime giving me
Error: 0xC0049064 at Load Ponl_Well, Derived Column [1342]: An error occurred while attempting to perform a type cast.
Anyone know how i can eliminate the data conversion component and just do my string and column concatenation in the derived column and have it output as DT_STR?
View 3 Replies
View Related
Sep 27, 2007
1) it is in the same filegroup as the rest of the table?
2) it is stored in a filegroup separately from the rest of the table (I think this is allowed)?
View 1 Replies
View Related
May 29, 2015
I am using SQL server 2008 .I have a table which has 1.5 crore records and some of my columns are Char datatype.Because of this i have spaces in my columns.Now I want to convert char to varchar datatype .But i have index on those columns .
View 2 Replies
View Related