DTS: Handling Zero Byte Input Files
Good Day,
I have a situation where I need to be able to gracefully handle zero byte text files to be processed by DTS (using ActiveX Script transformations).
I have a job set up in SQL Server that executes several DTS packages, then executes a Transact SQL script to process the data imported by DTS. This all works fine, but there are instances where some of files have no data to be imported. This causes the entire job to fail -- I don't want to alter the job to continue on an error because there is a legimate potential for errors. I do, however, want to be to have the job continue if one of the DTS packages has no data to process. Is there a way (DTS object method, property) to check for the absence of data before the DTS package errors out? Any ideas would be greatly appreciated.
Regards,
Robin Sarac
View Complete Forum Thread with Replies
Related Forum Messages:
Help With Error 'value Of Type Byte Canot Be Converted To 1 Dimensional Array Of Byte'
hi i am getting an error with my code, it says 'value of type byte canot be converted to 1 dimensional array of byte' do you know why and how i can correct this error, the follwoing is my code. can anyone help me correct the error and let me know ow to solve it thanks for any help givenPublic Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequestDim myConnection As New Data.SqlClient.SqlConnection("ConnectionString") myConnection.Open() Dim sql As String = "Select Image_Content from ImageGallery where Img_Id=@ImageId"Dim cmd As New Data.SqlClient.SqlCommand(sql, myConnection)cmd.Parameters.Add("@imgID", Data.SqlDbType.Int).Value = context.Request.QueryString("id") cmd.Prepare()Dim dr As Data.SqlClient.SqlDataReader = cmd.ExecuteReader() dr.Read() context.Response.ContentType = dr("imgType").ToString()context.Response.BinaryWrite(CByte(dr("imgData"))) ----- this is the line with the error End Sub
View Replies !
Getting Row Order In Input File When Handling Errors
Hi All, Well, tha case here is simply that i have a (Suppliers.csv) as an Input. When taking that file, I do some validation on it's rows (Data type validations, Mandatory Fielda validations..etc). When some rows to do not meet the requirments i put in these validations , it is supposed to be directed to an (Errors) Table in my SQL DB. I want to include the order of the invalid row in the input File (The row which did not pass from the pre-mentioned validations) within the (Errors) Table when i direct the invalid rows to it. Any ideas ?
View Replies !
Sniffing StoredProc Input Parameters For General Error Handling
Hi, id beg for a hint if our idea of a general dynamic CATCH handler for SPs is possible somehow. We search for a way to dynamically figure out which input parameters where set to which value to be used in a catch block within a SP, so that in an error case we could buld a logging statement that nicely creates a sql statement that executes the SP in the same way it was called in the error case. Problem is that we currently cant do that dynamically. What we currently do is that after a SP is finished, a piece of C# code scans the SP and adds a general TRY/CATCH bloack around it. This script scans the currently defined input parameters of the SP and generates the logging statement accordingly. This works fine, but the problem is that if the SP is altered the general TRY/CATCH block has to be rebuildt as well, which could lead to inconstencies if not done carefully all the time. As well, if anyone modifies an input param somewhere in the SP we wouldnt get the original value, so to get it right we would have to scan the code and if a input param gets altered within the SP we would have to save it at the very beginning. So the nicer solution would be if we could sniff the input param values dynamically on run time somehow, but i havent found a hint to do the trick..... Any tipps would be appreciated... cheers, Stefan
View Replies !
Handling Aspnetdb.mdf Files
Management, profiles, etc. in VWD setup and use an SQL Server 2005 Express file - aspnetdb.mdf. My remote server does not plan to install SQL Server 2005 Express. What needs to be installed on the server to run a website using the aspnetdb.mdf file. Will it run with SQL Server 2003 or SQL Server 2005 or must you have SQL Server 2005 Express?
View Replies !
Handling Flat Files That Do Not Exist
Hello, I have a package that contains 22 data flow tasks, one for each flat file that I need to process and import. I decided against making each import a seperate package because I am loading the package in an external application and calling it from there. Now, everything works beautifully when all my text files are exported from a datasource beyond my control. I have an application that processes a series of files encoded using EBCDIC and I am not always gauranteed that all the flat files will be exported. (There may have not been any data for the day.) I am looking for suggestions on how to handle files that do not exist. I have tried making a package level error handler (Script task) that checks the error code ("System::ErrorCode") and if it tells me that the file cannot be found, I return Dts.TaskResult = Dts.Results.Sucsess, but that is not working for me, the package still fails. I have also thought about progmatically disabling the tasks that do not have a corresponding flat file, but it seems like over kill. So I guess my question is this; if the file does not exist, how can I either a) skip the task in the package, or b) quietly handle the error and move on without failing the package? Thanks! Lee.
View Replies !
Error Handling When Calling External Sql-Files
I am using SQL Server 2000. I have some files with SQL-Statements.The SQL-Serveragent runs jobs which execute the SQL-Files:(e.g. osql /E /n /i \serverd$lager_pool.sql)How can I implement an error handling.If an error occurs, the script stops, and I can't read the variable@errorMy script - table xy doesn´t existSELECT * FROM XYSELECT @@errorSELECT 33The execution stops with an error after the first lineThanks for your help.aaapaul
View Replies !
SSIS Many Input Files To One Destination
I've been experimenting with SSIS (SQL Server Integration Services) and I have got some data imported. However I have a couple of questions.(1) I would like to know how I would go about importing data from multiple files in one operation. I have many files with the same format to be imported to one table. I'm looking for a way to have it iterate over all files in a directory, or a list I specify. It would performing essentially the same data flow operation but with a different input file. (2) I also have a variable that would need to be updated on each iteration as one item of data is missing from each file because it would be the same for all rows in the file. I currently set a variable before running the package that provides the missing value and I use the derived column transformation to inject it into the data flow.Any help would be greatly appreciated - especially pointers to relevant documentation as I just can't seem to figure out the correct key words to stick into MSN Search.
View Replies !
SQL2005 Data Import Error, Unicode Data Is Odd Byte Size For Column &&<n&&>. Should Be Even Byte Size
Hi, I have a problem importing data from SQL Server 2000 'text' columns to SQL Server 2005 nvarchar(max) columns. I get the following error when encountering a transfer of any column that matches the above. The error is copied below, Any help on this greatly appreciated... ERROR : errorCode=-1071636471 description=An OLE DB error has occurred. Error code: 0x80004005.An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Unicode data is odd byte size for column 3. Should be even byte size.". helpFile=dtsmsg.rll helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC} (Microsoft.SqlServer.DtsTransferProvider) Many thanks
View Replies !
How To Manage Different Input (Excel Files) Format
Hi all, I have created a package which import data from excel file and do some technical & business validation on the data. My package has about 20 control flow items. Now I'm asked to handle a second (and probably more in the future) excel file format (columns name are different, some fields are murged in one single column...). I definitely don't want to create a different package for each excel file format. But I can't find a way in the control flow to execute a particular DataFlow in one case and another DataFlow in other cases. Typically I would like to evaluate an expression an depending on the result execute a DataFlow or another one. Even in a given DataFlow I cant find a way to have a condition and process different Excel Source depending on an expression result. Or it would be good if I could say to my Excel Source to discover the columns name and types at runtime and let me manage the columns manually in the data flow. Is that possible ? I know SSIS manage metadata on the columns based on the data source is there any way to manage the metadata manually ? I coulnd't find anything about that in BOL. I guess an easy workaround is to have a different package just to import the different excel files in a common staging table and each package calls a single package which contains all technical & business validation. Any help will be appreciated. Kind regards, Sébastien.
View Replies !
How To Dynamically Generate Excel Files For The SQL Query Input?
Hi, There is one manual process done by my friend. The process is " In query analyser, she runs a sql query and the resultset of Sql query, she copies and pastes into a excel workbook". I wanted to write a SSIS package to automate it and providing a UI, in which she can give connection details and paste the SQL query and the package will in turn generate excel workbook in the target path". I thought of trying ExecuteSQL task, but the output resultset of ExecuteSQL task cannot be mapped dynamically to excel source(correct me if I am wrong). If I use Dataflow task, then also whether dynamic mapping of SQL output to Excel destination input is possible? Can you please tell me the best approach for achieving the above functionality? Thanks, Venkataraman R
View Replies !
OLEDB Destination Performance Decreasing Drastically Over Time For Large Input Files
Hi, We are processing 60,00, 000 rows(2 GB file) available in a flat file and loading them in to a database tables using OLEDB Destination components. In the data pipeline of an SSIS package we have 1 flat file source reader, 7 look up components(full cache mode), 1 multicast component and 2 OLE DB destinations with fast load option. We have observed that first 10,00, 000 rows are processed and loaded in to target tables in just 4 minutes time. The second set of 10,00, 000 rows are processed in 15 minutes time. After this for processing each 1,00,000 rows SSIS is taking approximately 8 - 10 minutes time. We are not able to identify the reasons for the unexpected behaviour of SSIS. We thought that as the input file size is 2 GB SSIS is not able to manage and slowing down over time of execution. We did split the big input file in to 60 small 37 MB (approx) size files. Then we modified the package by adding For-Each loop task to process all the 60 small files and load them in to database server sequentially. Even in this approach also we have identified data loading has slowed down drastically after processing 13 files. In order to verify is there any problem with reading source file or transformation, we have replaced OLEDB destinations component with Flat File destinations. With Flat file destination the time taken for processing rows is very constant. For every 8 minutes package is able to process 10,00,000 rows and write them in to the destination files. So, there is no problem with the with either Look up components or flat file source reader. We are sure that target database server is in same state/condition from the starting to the end of package execution. The client box in which we are running the package is having 1 GB RAM. During package execution time the CPU usage is at 30 % and PF usage is 580 MB. SP1 is also installed on both Client and Server. Does any one have clue what is causing slow down of data load over the time of package execution?
View Replies !
Byte[] Value In SQL Query...
Hi people,I have a little problem with this!There are some variables in C# code: int personID = 10; string personName = "Tom"; System.IO.BinaryReader reader = new System.IO.BinaryReader(FileUploadPersonPhoto.PostedFile.InputStream); byte[] personPhoto = reader.ReadBytes(FileUploadPersonPhoto.PostedFile.ContentLength); After that, there is a SQL query: string query = "INSERT INTO PersonTable (PersonID, PersonName, PersonPhoto) VALUES (" + personID + ", '" + personName + "', " + personPhoto + ")"; In Debug mode, value of the query is "INSERT INTO PersonTable (PersonID, PersonName, PersonPhoto) VALUES (10, 'Tom', System.Byte[])" and it does not work! Is there any prefix or something else that I should put and make it work?Thank you in advance!P.S. Do not want to use sql parameters at this piont!
View Replies !
SQL Binary To C# Byte[]
I have a binary column with length 20 in SQL server table. I store dynamically C# byte[] value range from 0 to 19. So for example, If I store length of 16 and when I try to retrive it back into byte [] in C# it returns whole length 20. When I see in debug it has value from 0 to 15 which I want to use but from 16 to 19 is zero. How can I get just length value which I stored. I use DataRow to get whole row and from the row object I extract byte [] based on column name. Thank you in advance....
View Replies !
DATEADD With 8 Byte Int?
I have a bigint column called "MillisecondsSince1970" that I need to convert to a date - SSIS is erroring out when I use DATEADD with the 8 byte int (if I use 4 byte it works but the column is bigger than 4 byte). The error is really lame: [Derived Column [79]] Error: The "component "Derived Column" (79)" failed because error code 0xC0049067 occurred, and the error row disposition on "output column "Date" (100)" specifies failure on error. An error occurred on the specified object of the specified component. Anyone have a way around it... a VB.NET equivalent of DATEADD or something else I can do?
View Replies !
From Byte[] To A .rdl File
Hi, Can we regenerate a .rdl file based on the byte[] stream created by Render method? user sends the report name with parameters to application server and it is application server sends the request to Reporting Server and get the report back (Render method). But how to pass the returned byte[] stream to user and show her/him a report?
View Replies !
CLR UDT Max Byte Size
Hello, I need some help working with CLR UDTs. I have created two UDTs called trajectory and point. Each trajectory consists of a list of points. Each point consists of three members : lon( type double), lat( type double) and datetime. I have written my own IBinarySerialize.Write method for the trajectory type which is the following: Dim maxSize As Integer = 4000 Dim value As String = "" Dim paddedvalue As String Dim i As Integer Dim pt As Point For i = 0 To point_list.Count - 1 pt = point_list.Item(i) If i = 0 Then value = value & pt.X & "|" & pt.Y & "|" & pt.D Else value = value & ">" & pt.X & "|" & pt.Y & "|" & pt.D End If Next paddedvalue = value.PadRight(maxSize, ControlChars.NullChar) For i = 0 To paddedvalue.Length - 1 Step 1 w.Write(paddedvalue(i)) Next If I try to store 225 points for a trajectory then the following error occurs: System.Data.SqlTypes.SqlTypeException: The buffer is insufficient. Read or write operation failed. Why is that happening? The limit size for a UDT is 8000bytes. Each point needs 24Bytes (2*SizeOf(double) + sizeOf(Datetime)). Please help ST
View Replies !
Cannot Convet Sql Image To Byte[]
I have followed many examples found on this site, but still get an invalid cast execption when I attempt to run code below. the exception is thrown when I try to convert the sql image to a byte[] in the download section of the code. // // sqlUploadImage // this.sqlUploadImage.CommandText = "INSERT INTO Image_Table (Description, Type, Lenth, DocName) VALUES (@Description," + " @Type, @Length, @DocName)"; this.sqlUploadImage.Connection = this.sqlConnection2; this.sqlUploadImage.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Description", System.Data.SqlDbType.VarChar, 50, "Description")); this.sqlUploadImage.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Type", System.Data.SqlDbType.VarChar, 50, "Type")); this.sqlUploadImage.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Length", System.Data.SqlDbType.Int, 4, "Lenth")); this.sqlUploadImage.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DocName", System.Data.SqlDbType.VarChar, 50, "DocName")); this.sqlUploadImage.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Image", System.Data.SqlDbType.Image, 16, "ImgField")); this.Button2.Click += new System.EventHandler(this.Button2_Click); // // sqlDownLoadImage // this.sqlDownLoadImage.CommandText = "SELECT Image_Table.* FROM Image_Table"; this.sqlDownLoadImage.Connection = this.sqlConnection2; //upload file private void Button1_Click(object sender, System.EventArgs e) { //Get the filename of the pdf file to be uploaded. string strFilename = File1.PostedFile.FileName.Substring(File1.PostedFile.FileName.LastIndexOf("\") +1); //Get the file type string strFileType = File1.PostedFile.ContentType; //Get the file size int intImageSize = File1.PostedFile.ContentLength; // Reads the Image Stream ImageStream = File1.PostedFile.InputStream; byte[] ImageContent = new byte[intImageSize + 1]; int intStatus = 0; intStatus = ImageStream.Read(ImageContent, 0, intImageSize); //Response.Write(strFilename.ToString()); //Response.Write("<br>Image Type: " + strFileType.ToString()); //Response.Write("<br>Image Size: "+intImageSize.ToString()); this.sqlUploadImage.Parameters["@Description"].Value = strFilename; this.sqlUploadImage.Parameters["@Type"].Value = strFileType; this.sqlUploadImage.Parameters["@Length"].Value = intImageSize; this.sqlUploadImage.Parameters["@DocName"].Value = "TestPDF"; this.sqlUploadImage.Parameters["@Image"].Value = ImageContent; try { this.sqlConnection2.Open(); this.sqlUploadImage.ExecuteNonQuery(); this.Label2.Text = "File Uploaded Successfully"; this.Button2.Visible = true; } catch(SqlException ex) { Response.Write(ex.ToString()); } finally { this.sqlConnection2.Close(); } } //download file private void Button2_Click(object sender, System.EventArgs e) { try { this.sqlConnection2.Open(); SqlDataReader r = this.sqlDownLoadImage.ExecuteReader(CommandBehavior.CloseConnection); if(r.Read()) { Response.ContentType = r["Type"].ToString(); byte[] image = (byte[])r["ImgField"]; Response.BinaryWrite(image); } } catch(SqlException ex) { Response.Write(ex.ToString()); } finally { this.sqlConnection2.Close(); } }
View Replies !
Doube Byte Characters
I want to store some double byte characters in a table. Originally I planed to change all data type of fields which will store double bytes from VARCHAR() to NVARCHAR(). But i just found out we have no problem to pull and store foreign content(double byte characters) in fields with VARCHAR type( the content is showing correct after stored in database) my question is : if VARCHAR can handle double byte character, what's the point of using NVARCHAR to store unicode character? any advice is appreciated. Michael ming.shi@factiva.com
View Replies !
Double-byte In MSSQL
Experts, i have trouble while insert/update a field which contains double-byte characters (Chinese Traditional). NO PROBLEM if i m using Enterprise Manager to view/edit the data. They are retrieved properly in the following: (1) Enterprise Manager (2) Query Analyzer (3) Visual Basic (4) Command prompt isql EACH of the Chinese words are become a qustion mark '?' if the UPDATE SQL or stored procedure executed in the following: (2) Query Analyzer (3) Visual Basic WHILE (4) Command prompt isql does not have the problem for the same UPDATE SQL and stored procedure. Do you have any idea?
View Replies !
Ftp Task- 0 Byte File
hi, i'm using FTP task in my control flow and using *.xml to receive all files at a particular ftp location. Often I see that a 0 byte file is created by the IS package, instead of transferring the file. Is this a known bug? Is there a way to circumvent it? Also, on one of the occasions, the package just hanged for about 60 minutes (while atttempting to receive the file). FTP Connection timeout was set to default (60 sec), I wonder why the FTP task didnt return a timeout error! Any clues? regards, Ali
View Replies !
Create Certificate From Byte[]
Hi, Just wondering if anyone knows if you can create a certificate from a byte[]. For example, you can create an assembly using CREATE ASSEMBLY FROM 0x...; specifying the hex representation of it - can you do the same with a certificate? This means that you don't need to save the file to disk before loading it into the database. Cheers, Adam
View Replies !
Going From Byte() To File Open Of Download
Hello, I'm having users upload documents to my db and storing them as an Image datatype, I can do that without an issue. I'm also able to find that record and return it as a byte(). Now, what's the best practice/scheme to return it to the browser, even FF, and have it prompt the user with the Open or Download thing Dialogue we all know and love. Thanks in advance.
View Replies !
Storing Byte Array In Sql Server
Hello, I am using .net 1.1 and sql server 2000. I want to store a byte array, but it seems that only a string is stored there. Code: SHA512 sha = new SHA512Managed(); byte[] ReturnedPasswordByte = sha.ComputeHash(ToCryptByte); MyGenericCommand.Parameters.Add("@Password", ReturnedPasswordByte); MyConnection.Open(); MyGenericCommand.ExecuteNonQuery(); MyConnection.Close(); If I select the record later, all I get is "System.Byte[]" (as string)
View Replies !
Bulk Insert From Zero Byte File
Ok, hope someone has an idea out there. I have eight fixed width text files that I am importing into SQL 2000 tables in stored procedures called from a vb.net program. Problem is one of the files stands a good chance of being 0 k. As of I now i call one stored proc that then calls one proc for each file. If i try to run it anyhting after the zero byte file fails to import. If i remark it out everything else imports. I check for file.exists on the vb.net and the file passes the test. Any way to handle the 0 byte on the proc side
View Replies !
DTS Package - How To Prevent A 0 Byte File?
I've created a DTS package -- that uses a query to export to a .txt file. My question is -- if the results of this query are zero (no results returned within the package ) -- how can I tell the package not to export a zero byte file. Any thoughts on that? Any help you could give would be greatly appreciated. Thanks!
View Replies !
Derived Column Can't Add 8-byte Integers
I'm having trouble adding a 4-byte integer with an 8-byte integer. Here's what I'm doing: Column Name: BIG_ID Derived Column: < add as new column > Expression: (DT_I8)[ID] + 840230000538058 Data Type: eight-byte signed integer {DT_I8] The error I get: The literal 840230000538058 is too large to fit into type DT_I4. The magnitude of the literal overflows the type. Then I try the expression: (DT_I8)[ID] + (DT_I8)840230000538058 and [ID] + 840230000538058 and get the same error. What am I doing wrong? Is it possible to add 2 8-byte integers in regular expression? Why does it still think the literal is DT_I4? Thanks, Michael
View Replies !
Help: 900 Byte Limit On Stored Procedure Parameter?
Hi,I have a .NET application that I want to save the Config.EXE contentsto my SQL database for remote review/testing. This config file is3700+ bytes long. I created a field in one of my tables with a VARCHAR4800 and then created a stored procedure that receives a parameter(also VARCHAR(4800).However it fails to write anything if the length of the value that Ipass is anything greater than 900. If I pass exactly 900 characters orless - the data is written to the field. If I pass 901 characters Iget nothing.I'm suspicious since it is exactly 900. I seriously doubt it's somelimitation of MS-SQL so I need a nudge in the right direction.Thanks
View Replies !
Breaking Data Into 1500 Byte Chunks
Hi, I have a text file (5 MB). It appears as a single line in a text editor. But actually it has records of 1500 byte length each. I want to strip it down to 1500 byte records. So 1500*3500 = 5 MB (approx). The record size is always 1500 bytes. Does anyone have a script that I can run on this file to achieve this break. Thanks
View Replies !
DTS - Zerp Byte File Import And DontExecuteTask
Hi, I'm a bit new to DTS but the problem I have encountered relates to importing a text file. On occasion the file is zero bytes which causes an error in DTS. I have added some VBScript to the workflow to check the filesize. If size > 0 then I set Main = DTSStepScriptResult_ExecuteTask otherwise Main = DTSStepScriptResult_DontExecuteTask. This all works fine except that when the file is 0 the dependent process that is waiting for completion/success does not run, presumably because the task was not run (as reqd). I have tried setting the status rather the DontExecuteTask but then the task runs anyway creating the error. Anyonw know how to get this to work or how to get around the problem? regards Ken
View Replies !
DTS Adding Byte To Columns During Table Migration
When migrating a table from Informix to SQL Server using DTS services, SQL Server adds an extra byte to the column lengths. Does anyone know why this happens and is there a way to prevent it? I'd like the source and target table to have the same column characteristics. Thanks.
View Replies !
Trying To Map To Tinyint - Single Byte Unsigned Int Not Working
I have an Excel spreadsheet that I eventually land into my staging table. In between, I'm attempting to get a date code from the Date table. I'm using a Lookup Transformation Editor and mapping the fiscal week of year and fiscal year name. I know the fiscal year name is fine. When I have both the fiscal year name and the fiscal week of year, the package fails on the lookup step. In a data conversion, I convert the fiscal week of year to a single byte unsigned integer. (In the Date table, the fiscal week of year is a tinyint.) I'm not sure what I'm doing wrong?
View Replies !
Connecting To Double Byte Progress (MFG-PRO) Databases From SSIS...
HelloWe use MFG-PRO as our ERP system which in turn uses Progressdatabases. In the old version of SQL 2000, using DTS packages, we usedto set the code page via command prompts and execute DTS packageswithin that command prompt to fetch data from our double byte ERPdatabases. In SSIS, we are able to connect and fecth data from NONDouble Byte databases, however, when we set the code page first andexecute via a command prompt the SSIS package, we get the followingerror. We used a ADO.NET connection to connect to our Source ERPSystem. Appreciate any help.ThanksJagannathan SanthanamMicrosoft (R) SQL Server Execute Package UtilityVersion 9.00.1399.06 for 32-bitCopyright (C) Microsoft Corp 1984-2005. All rights reserved.Started: 8:09:26 AMProgress: 2007-11-28 08:09:26.93Source: Data Flow Task 1Validating: 0% completeEnd ProgressError: 2007-11-28 08:09:27.15Code: 0xC0047062Source: Data Flow Task 1 DataReader Source [1]Description: System.Data.Odbc.OdbcException: ERROR [HYC00][DataDirect][ODBCPROGRESS driver]Optional feature not implemented.ERROR [HY000] [DataDirect][ODBC PROGRESS driver][PROGRESS]-219901ERROR [IM006] [DataDirect][ODBC PROGRESS driver]Driver'sSQLSetConnectAttr failed.ERROR [HYC00] [DataDirect][ODBC PROGRESS driver]Optional feature notimplemented..ERROR [HY000] [DataDirect][ODBC PROGRESS driver][PROGRESS]-219901ERROR [IM006] [DataDirect][ODBC PROGRESS driver]Driver'sSQLSetConnectAttr failed.at System.Data.Odbc.OdbcConnection.HandleError(OdbcHa ndle hrHandle,RetCode retcode)at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcCo nnectionconnection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)atSystem.Data.Odbc.OdbcConnectionFactory.CreateConne ction(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool,DbConnection owningObject)atSystem.Data.ProviderBase.DbConnectionFactory.Creat eNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)atSystem.Data.ProviderBase.DbConnectionFactory.GetCo nnection(DbConnectionowningConnection)atSystem.Data.ProviderBase.DbConnectionClosed.OpenCo nnection(DbConnectionouterConnection, DbConnectionFactory connectionFactory)at System.Data.Odbc.OdbcConnection.Open()atMicrosoft.SqlServer.Dts.Runtime.ManagedHelper.GetM anagedConnection(StringassemblyQualifiedName, String connStr, Object transaction)atMicrosoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnec tionManager90.AcquireConnection(Object pTransaction)atMicrosoft.SqlServer.Dts.Pipeline.DataReaderSourceA dapter.AcquireConnections(Object transaction)atMicrosoft.SqlServer.Dts.Pipeline.ManagedComponentH ost.HostAcquireConnections(IDTSManagedComponentWrapper90 wrapper, Object transaction)End ErrorError: 2007-11-28 08:09:27.16Code: 0xC0047017Source: Data Flow Task 1 DTS.PipelineDescription: component "DataReader Source" (1) failed validationand returnederror code 0x80131937.End ErrorProgress: 2007-11-28 08:09:27.16Source: Data Flow Task 1Validating: 33% completeEnd ProgressError: 2007-11-28 08:09:27.16Code: 0xC004700CSource: Data Flow Task 1 DTS.PipelineDescription: One or more component failed validation.End ErrorError: 2007-11-28 08:09:27.16Code: 0xC0024107Source: Data Flow Task 1Description: There were errors during task validation.End ErrorDTExec: The package execution returned DTSER_FAILURE (1).Started: 8:09:26 AMFinished: 8:09:27 AMElapsed: 0.859 seconds
View Replies !
Connecting To Double Byte Progress (MFG-PRO) Databases From SSIS...
Hello We use MFG-PRO as our ERP system which in turn uses Progress databases. In the old version of SQL 2000, using DTS packages, we used to set the code page via command prompts and execute DTS packages within that command prompt to fetch data from our double byte ERP databases. In SSIS, we are able to connect and fecth data from NON Double Byte databases, however, when we set the code page first and execute via a command prompt the SSIS package, we get the following error. We used a ADO.NET connection to connect to our Source ERP System. What shocks me is that this functionality works well in SQL Server 2000 DTS packages but not in the much publicized SSIS packages. The error messages are so cryptic as they used to be in DTS days and do not help a wee bit! Appreciate any help. Thanks Jagannathan Santhanam Microsoft (R) SQL Server Execute Package Utility Version 9.00.1399.06 for 32-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 8:09:26 AM Progress: 2007-11-28 08:09:26.93 Source: Data Flow Task 1 Validating: 0% complete End Progress Error: 2007-11-28 08:09:27.15 Code: 0xC0047062 Source: Data Flow Task 1 DataReader Source [1] Description: System.Data.Odbc.OdbcException: ERROR [HYC00] [DataDirect][ODBC PROGRESS driver]Optional feature not implemented. ERROR [HY000] [DataDirect][ODBC PROGRESS driver][PROGRESS]-219901 ERROR [IM006] [DataDirect][ODBC PROGRESS driver]Driver's SQLSetConnectAttr faile d. ERROR [HYC00] [DataDirect][ODBC PROGRESS driver]Optional feature not implemented . ERROR [HY000] [DataDirect][ODBC PROGRESS driver][PROGRESS]-219901 ERROR [IM006] [DataDirect][ODBC PROGRESS driver]Driver's SQLSetConnectAttr faile d. at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode r etcode) at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, Odb cConnectionString constr, OdbcEnvironmentHandle environmentHandle) at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOption s options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection own ingObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbC onnection owningConnection, DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection ow ningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection ou terConnection, DbConnectionFactory connectionFactory) at System.Data.Odbc.OdbcConnection.Open() at Microsoft.SqlServer.Dts.Runtime.ManagedHelper.GetManagedConnection(String assemblyQualifiedName, String connStr, Object transaction) at Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnectionManager90.AcquireCon nection(Object pTransaction) at Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.AcquireConnection s(Object transaction) at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostAcquireConnectio ns(IDTSManagedComponentWrapper90 wrapper, Object transaction) End Error Error: 2007-11-28 08:09:27.16 Code: 0xC0047017 Source: Data Flow Task 1 DTS.Pipeline Description: component "DataReader Source" (1) failed validation and returned error code 0x80131937. End Error Progress: 2007-11-28 08:09:27.16 Source: Data Flow Task 1 Validating: 33% complete End Progress Error: 2007-11-28 08:09:27.16 Code: 0xC004700C Source: Data Flow Task 1 DTS.Pipeline Description: One or more component failed validation. End Error Error: 2007-11-28 08:09:27.16 Code: 0xC0024107 Source: Data Flow Task 1 Description: There were errors during task validation. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 8:09:26 AM Finished: 8:09:27 AM Elapsed: 0.859 seconds
View Replies !
How To: Store And Retrieve Images In A Database As A Byte Array.
I€™ve inherited a project from one of the guys on our team who will be out sick for a while. He developed two for marshaling data between System.Drawing.Image and System.Byte(). He€™s storing the byte array data in a database image field. I€™ve retrieved the byte array data from his database image fields and have successfully converted them to images using his ConvertByteArrayToImage method below. I have also converted and image to a byte array with his ConvertImageToByteArray method below and succfully stored the data in a database image field. However, when I retrieve the byte array data that I stored in the database the last line in his ConvertByteArrayToImage method throws an exception (Parameter is not valid). I€™ve not been able to find a working copy of his code that€™s storing the byte array data. Does anyone see anything I€™m overlooking? Imports System.Drawing Imports System.IO Public Sub InsertImage(ByVal pFilename As String) Try Dim lImage As Image Dim lBA() As Byte Dim lSQL As String Dim lQuery As Alcon.SQLServer.Database.clsQuery Dim lParameters As New Alcon.SQLServer.Database.clsParameters lImage = Image.FromFile(pFilename) ConvertImageToByteArray(lImage, lBA) ' Initialization lQuery = New Alcon.SQLServer.Database.clsQuery(mConnection) lSQL = "" lSQL += "INSERT INTO [TBL_PCL_LENS_DATA](" lSQL += "[SerialNumber], " lSQL += "[ProcessedDate], " lSQL += "[CartonLabelImage]) " lSQL += "VALUES (" lSQL += "@SerialNumber, " lSQL += "@ProcessedDate, " lSQL += "@CartonLabelImage " lSQL += ")" lParameters.Add("@SerialNumber", SqlDbType.VarChar, ParameterDirection.Input, mSerialNumber) lParameters.Add("@ProcessedDate", SqlDbType.DateTime, ParameterDirection.Input, Now) lParameters.Add("@CartonLabelImage", SqlDbType.Image, ParameterDirection.Input, lBA) ' Execute query lQuery.Execute(lSQL, lParameters) Catch ex As Exception Throw End Try End Sub ConvertByteArrayToImage(ByVal pBA() As Byte, ByRef pImage As Image) Try ' Declaration Dim lMS As MemoryStream ' Initialization lMS = New MemoryStream(pBA, 0, pBA.Length) lMS.Write(pBA, 0, pBA.Length) lMS.Position = 0 ' Create image pImage = Image.FromStream(lMS, True) Catch ex As Exception Throw End Try End Sub ConvertImageToByteArray(ByVal pImage As Image, ByRef pBA() As Byte) Try ' Declaration Dim lBM As Bitmap Dim lBR As BinaryReader Dim lMS As New MemoryStream ' Initialization lBM = New Bitmap(pImage) lBM.Save(lMS, Imaging.ImageFormat.Png) lBR = New BinaryReader(lMS) ' Create byte array pBA = lBR.ReadBytes(lMS.Length) Catch ex As Exception Throw End Try End Sub
View Replies !
Searching A String With Asian Characters (double Byte)
My problem is that i can't search a field that contains Asian characters (Korean in this case). The table user_Access_tab have 2 keys: access_id nVarchar(50) user_id nVarchar(50) The sql query below is sent through a oledbcommand to a sql server 2005 database. "select access_id, access_right from user_Access_tab where user_id ='HQ001kimjo012007-05-07 ì˜¤ì „ 11:50:323401'" It doesn't show any hits even thogh i know there is a number of matching records. The question doesn't generate an answer in SQL server manager studio eigher. If i change the datatype on user_id to Varchar(50) the id is presented (in the database) as: HQ001kimjo012007-05-07 ?? 11:50:323401 Then the question works, but why doesn't it work with nVarChar(50)? Regards Martin Jonsson
View Replies !
Writing Byte Stream To Flat File Destination (ebcdic)
Hello all, I was trying to run a test to write a ebcdic file out with a comp - 3 number (testing this for other people) and have run into a problem writing the string out to the flat file destination. I have the following script component: Code Block ' Microsoft SQL Server Integration Services user script component ' This is your new script component in Microsoft Visual Basic .NET ' ScriptMain is the entrypoint class for script components Imports System Imports System.Data Imports System.Math Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper Imports Microsoft.SqlServer.Dts.Runtime.Wrapper Public Class ScriptMain Inherits UserComponent Public Overrides Sub CreateNewOutputRows() ' ' Add rows by calling AddRow method on member variable called "Buffer" ' E.g., MyOutputBuffer.AddRow() if your output was named "My Output" ' Output0Buffer.AddRow() Dim myByteArray() As Byte = {&H12, &H34, &H56, &H7F} Output0Buffer.myByteStream = myByteArray Output0Buffer.myString = "ABCD" Output0Buffer.myString2 = "B123" myByteArray = Nothing End Sub End Class I have added myByteStream as a DT_BYTES length 4, myString as (DT_STR, 4, 37) and myString2 as (DT_STR, 4, 37) to the output 0 buffer. I then add a flat file destination with code set 37 (ebcdic us / canda) with the corresponding columns using fixed width. When i place a dataviewer on the line between the two the output looks as I expect ("0x12 0x34 0x56 0x7F", "ABCD", "B123"). However, when it gets to the flat file destination it errors out with the following: Code Block [Flat File Destination [54]] Error: Data conversion failed. The data conversion for column "myByteStream" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.". If i increase the size of the byte stream (say, to 50) the error goes away but I am left with the string "1234567F" instead of the appropriate hex values. Any clues on how to go about this? I obviously don't care if it gets transferred to "readable" text as this is supposed to be a binary stream, thus the no match in target page seems superfulous but is probably what is causing the problems. NOTE: this is relating to the following thread (http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2300539&SiteID=1) in that I am trying to determine why these people are not seeing the "UseBinaryFormat" when importing an EBCDIC file (i see this fine when i use an ftp'd file, but it auto converts to ascii) with comp-3 values. I also see the "UseBinaryFormat" when I am importing a regular EBCDIC file which I create that has no import errors with zoned decimals.
View Replies !
Do Stored Procedures Have A Limit On Number Of Parameters Or Byte Size Passed In?
Hi,I'm using c# with a tableadapter to call stored procedures. I'm running into a problem where if I have over a certain byte size or number of parameters being passed into my stored proc I get an exception that reads: "Cannot evaluate expression because a thread is stopped at a point where garbage collection is impossible, possibly because the code is optimized." If I remove one parameter, the problem goes away. Has anyone run into this before? Thanks,Mark
View Replies !
Script Task: How To Compare Files On FTP With Existing Files In Local Folder Before Transfer!
In the first step of my SSIS package I need to get files from FTP and dump it/them in a local directory, but it's more than that, the logic is like this: 1. If no file(s) found, stop executing and send email saying no file(s) found; 2. If file(s) found, then compare it/them with existing files in our archive folder; if file(s) already exist in archive folder, stop executing and send email saying file(s) already existed, if file(s) not in archive folder yet, then transfer it/them to the local directory for processing. I know i have to use a script task to do this and i did some research and found examples for each of the above 2 steps and not both combined, so that's why I need some help here to get the logic incorporated right. Thanks for the help in advance and i apologize for the long lines of code! example for step 1: ---------------------------------------------------------------------------------------------------------- ' Microsoft SQL Server Integration Services Script Task ' Write scripts using Microsoft Visual Basic ' The ScriptMain class is the entry point of the Script Task. Imports System Imports System.Data Imports System.Math Imports Microsoft.SqlServer.Dts.Runtime Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper Imports Microsoft.SqlServer.Dts.Runtime.Wrapper Imports Microsoft.VisualBasic.FileIO.FileSystem Imports System.IO.FileSystemInfo Public Class ScriptMain ' The execution engine calls this method when the task executes. ' To access the object model, use the Dts object. Connections, variables, events, ' and logging features are available as static members of the Dts class. ' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure. ' ' To open Code and Text Editor Help, press F1. ' To open Object Browser, press Ctrl+Alt+J. Public Sub Main() Dim cDataFileName As String Dim cFileType As String Dim cFileFlgVar As String WriteVariable("SCFileFlg", False) WriteVariable("OOFileFlg", False) WriteVariable("INFileFlg", False) WriteVariable("IAFileFlg", False) WriteVariable("RCFileFlg", False) cDataFileName = ReadVariable("DataFileName").ToString cFileType = Left(Right(cDataFileName, 4), 2) cFileFlgVar = cFileType.ToUpper + "FileFlg" WriteVariable(cFileFlgVar, True) Dts.TaskResult = Dts.Results.Success End Sub Private Sub WriteVariable(ByVal varName As String, ByVal varValue As Object) Try Dim vars As Variables Dts.VariableDispenser.LockForWrite(varName) Dts.VariableDispenser.GetVariables(vars) Try vars(varName).Value = varValue Catch ex As Exception Throw ex Finally vars.Unlock() End Try Catch ex As Exception Throw ex End Try End Sub Private Function ReadVariable(ByVal varName As String) As Object Dim result As Object Try Dim vars As Variables Dts.VariableDispenser.LockForRead(varName) Dts.VariableDispenser.GetVariables(vars) Try result = vars(varName).Value Catch ex As Exception Throw ex Finally vars.Unlock() End Try Catch ex As Exception Throw ex End Try Return result End Function End Class example for step 2: ------------------------------------------------------------------------------------------------------- ' Microsoft SQL Server Integration Services Script Task ' Write scripts using Microsoft Visual Basic ' The ScriptMain class is the entry point of the Script Task. Imports System Imports System.Data Imports System.Math Imports Microsoft.SqlServer.Dts.Runtime Public Class ScriptMain ' The execution engine calls this method when the task executes. ' To access the object model, use the Dts object. Connections, variables, events, ' and logging features are available as static members of the Dts class. ' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure. ' ' To open Code and Text Editor Help, press F1. ' To open Object Browser, press Ctrl+Alt+J. Public Sub Main() Try 'Create the connection to the ftp server Dim cm As ConnectionManager = Dts.Connections.Add("FTP") 'Set the properties like username & password cm.Properties("ServerName").SetValue(cm, "ftp.name.com") cm.Properties("ServerUserName").SetValue(cm, "username") cm.Properties("ServerPassword").SetValue(cm, "password") cm.Properties("ServerPort").SetValue(cm, "21") cm.Properties("Timeout").SetValue(cm, "0") 'The 0 setting will make it not timeout cm.Properties("ChunkSize").SetValue(cm, "1000") '1000 kb cm.Properties("Retries").SetValue(cm, "1") 'create the FTP object that sends the files and pass it the connection created above. Dim ftp As FtpClientConnection = New FtpClientConnection(cm.AcquireConnection(Nothing)) 'Connects to the ftp server ftp.Connect() 'ftp.SetWorkingDirectory("..") ftp.SetWorkingDirectory("directoryname") Dim folderNames() As String Dim fileNames() As String ftp.GetListing(folderNames, fileNames) Dim maxname As String = "" For Each filename As String In fileNames ' whatever operation you need to do to find the correct file... Next Dim files(0) As String files(0) = maxname ftp.ReceiveFiles(files, "C: emp", True, True) ' Close the ftp connection ftp.Close() 'Set the filename you retreive for use in data flow Dts.Variables.Item("FILENAME").Value = maxname Catch ex As Exception Dts.TaskResult = Dts.Results.Failure End Try Dts.TaskResult = Dts.Results.Success End Sub End Class
View Replies !
Converting SQL Loader Control Files To BCP Format Files
Hello,I am currently in the process of converting an Oracle data warehouseover to SQL Server. The warehouse is loaded through a bunch of textfiles all through SQL Loader, using various control files. I need toconvert this over to use BCP with format files, which has proven to bea very tedious task.Has anyone written, or seen, a utility to convert Oracle control filesover to format files?Thanks,-Tom.
View Replies !
HELP!!! Cannot Import SSIS Package Files From .dtsx Files
Brief overview...Running SQL Server 2003 Server Enterprise 64 bit - All Service Packs and patches current SQL Server 2005 Enterprise Edition 64 bit Build Microsoft SQL Server 2005 - 9.00.3054.00 (X64) Mar 23 2007 18:41:50 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) I cannot import any SSIS packages nor crete any new folders under stored packages. I hve googled the news groups and looked at BOL to no avail. HELP!!!!
View Replies !
Unable To Cast Object Of Type 'System.DBNull' To Type 'System.Byte[]'.
Hi, I have developed a custom server control for .NET Framework 2.0. The server control has a property named BinaryData of type byte[]. I marked this property to be data bindable. Now, I have varbinary(Max) type of field in my SQL Database and I have used SQLDataSource and bound this varbinary(Max) field with the property BinaryData (byte[]) of my control. It is working fine as long as the data value is not NULL. Now, In my control, I have handled the NULL value so that no Exception is thrown. Still, when I bind this property using the SQLDataSource, I get Error "Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'." I am not sure if I can do anything to stop this erro within my control. If it is not possible from the control, then what is the workaround that I can do in my ASPX page in order to stop this error ? Thanks a lot in advance.
View Replies !
Is It A Good To Replace SQL Script Files With XML Files?
I am thinking about replacing the INSERT data scriptfiles that I have with XML files. This way I can open the XMLfile using an XML Editor and see the values in a GRID andmake changes easier.Do you see any problem with this approach?I managed to put together some code that is exportinga SQL table with its data to an XML file and also a codethat reads the XML file's data and inserts it into a table.Now I am researching on XSD, td:datatype, DTD...(I am new to XML) in order to figure out how I canuse a single xml file that will hold both the sql serverfields, the datatypes and their values.If you have links to some sample code that has anythingto do with the datatype export and import I am workingon, can you please share them with me?Most importantly what do you think about the idea of usingXML files vs sql scripts?Thank you
View Replies !
|