I'm looking for a simple way to create a text file inside a stored procedure. I want to set it up so the end user would just execute the SPROC that would run the required queries and dump the result into a custom formated text file.
I tried BCP but could not lauch it inside the SPROC without using OSQL. I am running SQL Server 2003 64bit. Any ideas?
Hi, I want to create a text file and write to text it by calling its assembly from Stored Procedure. Full Detail is given below
I write a code in class to create a text file and write text in it. 1) I creat a class in Visual Basic.Net 2005, whose code is given below: Imports System Imports System.IO Imports Microsoft.VisualBasic Imports System.Diagnostics Public Class WLog Public Shared Sub LogToTextFile(ByVal LogName As String, ByVal newMessage As String) Dim w As StreamWriter = File.AppendText(LogName) LogIt(newMessage, w) w.Close() End Sub Public Shared Sub LogIt(ByVal logMessage As String, ByVal wr As StreamWriter) wr.Write(ControlChars.CrLf & "Log Entry:") wr.WriteLine("(0) {1}", DateTime.Now.ToLongTimeString(), DateTime.Now.ToLongDateString()) wr.WriteLine(" :") wr.WriteLine(" :{0}", logMessage) wr.WriteLine("---------------------------") wr.Flush() End Sub Public Shared Sub LotToEventLog(ByVal errorMessage As String) Dim log As System.Diagnostics.EventLog = New System.Diagnostics.EventLog log.Source = "My Application" log.WriteEntry(errorMessage) End Sub End Class
2) Make & register its assembly, in SQL Server 2005. 3)Create Stored Procedure as given below:
CREATE PROCEDURE dbo.SP_LogTextFile ( @LogName nvarchar(255), @NewMessage nvarchar(255) ) AS EXTERNAL NAME [asmLog].[WriteLog.WLog].[LogToTextFile]
4) When i execute this stored procedure as Execute SP_LogTextFile 'C:Test.txt','Message1'
5) Then i got the following error Msg 6522, Level 16, State 1, Procedure SP_LogTextFile, Line 0 A .NET Framework error occurred during execution of user defined routine or aggregate 'SP_LogTextFile': System.UnauthorizedAccessException: Access to the path 'C:Test.txt' is denied. System.UnauthorizedAccessException: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, ileOptions options) at System.IO.StreamWriter.CreateFile(String path, Boolean append) at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) at System.IO.StreamWriter..ctor(String path, Boolean append) at System.IO.File.AppendText(String path) at WriteLog.WLog.LogToTextFile(String LogName, String newMessage)
Is it possible to create a stored procedure which will create a text file (containing information from some tables) and send it via e-mail to a list of user.
I know that I will have to configure the SQL Mail.
If it is possible, can someone give me sample code.
Hey guys, I have a dilemma and hope someone can help.
I don't know of any utilities or commands in SQL that do this but I hope someone does.
What I need to do is something like a bcp import a text file in. I can do that with DTS as well. But what I wanted to do is create a table on the import. So lets say, I am importing a tab-delimited file with column names as the first row that is called ax.txt. On import, it would create the table ax with the column names in the file and then import the data into that table.
I hope I explained it clearly. Please let me know if there is anything I can use to do this without writing lots of code.
I have an idea how to do it the long way but hope there is a utility that already does it.
I am trying to create a text file from an SQL query on a SQL table. I would like the SSIS package to prompt for the file name and path. The text file is tab delimited and the text qualifier is a double quote.
Hello all I have a sql file that I want execute by using the cmdsql command line. But when I create a text file I receive two Informational Messages: 1. "Changed database context to 'DataBaseName'." 2. (2 row(s) affected) How can I ignore these messages in my text file? there is a parametter or something elese to configure to avoir these Informational Messages?
LEFT OUTER JOIN vwInventoryAllocMapping AS vwMap ON a.TNRAllocTypeID = vwMap.TNRInventoryAllocID
LEFT OUTER JOIN ABC.dbo.ZREFRESHTAB AS b ON a.DispenserID = b.Asset
LEFT OUTER JOIN ABC.dbo.TableJoinKey AS c ON a.TitleID = c.TITLE_ID
WHERE (vwMap.DataSourceID = 3) and vwMap.[DataSourceAllocName] = 'I'
group by c.SKU_NO , vwMap.[DataSourceAllocName],a.Qty , b.Profit_Center
order by c.SKU_NO,vwMap.[DataSourceAllocName]
GO
i have to send the result of aforesaid script in batch of 300 records per file (tab delimited text file) now the file name must be dynamically created as each file will contain 300 records.
I have found some document related to same issue on this url
We've all seen this, where it uses an individual .write statement for each column.
Code Snippet
Public Overrides Sub AWCCogent_ProcessInputRow(ByVal Row As AWCCogentBuffer)
With textWriter
Dim item As Object
If Not Row.AddressID_IsNull Then .Write(Row.AddressID) End If .Write(columnDelimiter) If Not Row.City_IsNull Then .Write(Row.City) End If
.WriteLine()
End With
End Sub
But hard coding this seems not the smartest way. Especially since in my text file, there needs to be close to 100 columns. This could be a nightmare to update down the road. But I can't seem to find the object collection to loop through, like row.items which would seem to be logical.
I have a text file which needs to be created into a table (let's call it DataFile table). For now I'm just doing the manual DTS to import the txt into SQL server to create the table, which works. But here's my problem....
I need to extract data from DataFile table, here's my query:
select * from dbo.DataFile where DF_SC_Case_Nbr not like '0000%';
Then I need to create a new table for the extracted data, let's call it ExtractedDataFile. But I don't know how to create a new table and insert the data I selected above into the new one.
Also, can the extraction and the creation of new table be done in just one stored procedure? or is there any other way of doing all this (including the importation of the text file)?
Similar to a previous post (http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=244646&SiteID=1), I am trying to import data into a SQL Table.
I am trying to program a small application that will import product data obtained through suppliers via CD-ROM. One supplier in particular uses Fixed width colums, and data looks like this:
Example of Data
0124015Apple Crate 32.12
0124016Bananna Box 12.56
0124017Mango Carton 15.98
0124018Seedless Watermelon 42.98 My Table would then have: ProductID as int Name as text Cost as money
How would I go about extracting the data with an XML Format file? I am stumbling over how to tell it where to start picking up data for a specific column. Is there any way that I could trim the Name column (i.e.: "Mango Carton " --> "Mango Carton")?
I don't know if it makes any difference, but I've been calling SQL from my code by doing this:
Code in C# Form
SqlConnection SqlConnection = new SqlConnection(global::SQLClients.Properties.Settings.Default.ClientPhonebookConnectionString); SqlCommand cmd = new SqlCommand();
SqlConnection.Open(); cmd.ExecuteNonQuery(); SqlConnection.Close(); RefreshData(); I am running Visual Studio C# Express 2005 and SQL Server Express 2005.
What is the easiest way to accomplish this task with SSIS?
Basically I have a stored procedure that unions multiple queries between databases. I need to be able to export this to a text file on a daily basis and add a total records: row to the end of the text file.
Hello Experts, I am createing one task (user control) in SSIS. I have property grid in my GUI and 2 buttons (OK & Cancle). PropertyGrid has Properties like SourceConnection, OutputConnection etc....right now I am able to populate Connections in list box next to Source and Output Property.
Now my question to you guys is depending on Source Connection it should read that text file associated with connection manager. After validation it should pick header (first line of text file bases on record type) and write it into new file when task is executed. I have following code for your reference. Please let me know I am going in right direction or not.. What should go here ? ->Under Class A
I have used the copy database wizard, but I realized I had forgotten to shrink the transaction log file. So I canceled the wizard. My database, detached by the wizard, has now disappeared. The mdf file is still there, but when I try to attach it manually I get the "create file encountered operating system error 5 while attempting to open the physical file..." error.
1. Flat File Source 2. Conditional Split, Case Good = !ISNULL(KEY) Case Error = ISNULL(KEY) 3. Case Good -> Writes to Good Flat File (with timestamp in the title) 4. Case Error -> Writes to Error Flat File (with timestamp in the title)
Most job runs have no errors but the error file is created as a zero byte file anyway. If there are no error records I don't want the error file created. How might I accomplish this?
I'm using an ISP with SQL Server, the Database Publishing Wizard worked great to create a text.sql file which recreated the exact replica of the local db on the ISP's SQL Server. But, is there a code library for this somewhere so I can run this automatically on the the server and post the text.sql file off as a local backup?
Hi, all. I'm fairly new to SQL, and I have been trying to create a tablefrom a text file. I have been looking at this for days, and can't find theproblem. I get a syntax error " Line 55: Incorrect syntax near'DateUpdated'." Here is the query. Any suggestions would be appreciated,as I am trying to learn and improve.Use ACHgoif exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[ImportFiles]') and OBJECTPROPERTY(id, N'IsProcedure') =1)drop procedure [dbo].[ImportFiles]GOCREATE Procedure ImportFiles@FilePath varchar(1000),@MergeProc varchar(128) = 'MergeData'ASDECLARE @cmd varchar(2000),@Command_String varchar(3000)DECLARE @FileName varchar(1000),@File varchar(1000)CREATE table ##Import (datarow varchar(200))CREATE table #Dir (datarow varchar(200))DROP TABLE ACHParticipantsselect @cmd = 'dir /B' + @FilePathdelete #Dirinsert #Dir exec master..xp_cmdshell @cmddelete #Dir where datarow is null or datarow like '%not found%'while exists (select * from #Dir)BEGINselect @FileName = min(datarow) from #Dirselect @file= @FilePath + @FileNameselect @cmd = 'bulk insert'select @cmd = @cmd + ' ##Import'select @cmd = @cmd + ' from'select @cmd = @cmd + ' @File,'select @cmd = @cmd + ' with (FIELDTERMINATOR='''''select @cmd = @cmd + ',ROWTERMINATOR = '':'')'truncate table ##Import-- import the dataexec (@cmd)-- remove filename just importeddelete #Dir where datarow = @FileNameexec @MergeProcENDdrop table ##Importdrop table #DirGOif exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[MergeData]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[MergeData]GOCREATE PROCEDURE MergeDataASCREATE table ACHParticipants(RoutingNum varchar(9),OfficeCode varchar(1),ServicingFRBNum varchar(9),RecordType varchar(1),ChangeDate varchar(8),NewRoutingNum varchar(9),BankName varchar(36),BankAddress varchar(36),City varchar(20),State varchar(2),Zipcode varchar(10),Phone varchar(14),StatusCode varchar(1),DataView varchar(1),Filler varchar(5),DateUpdated datetime)INSERT INTO ACHParticipants(Routing_Number, Office_Code, Servicing_FRB_Number, Record_Type_Code, Change_Date, New_Routing_Number, Customer_Name, Address, City, State_Code, Zipcode, Telephone, Institution_Status_Code, Data_View_Code, Filler, DateUpdated)SELECT Substring(DataRow,1,9) AS RoutingNum,Substring(DataRow,10,1) AS OfficeCode,Substring(DataRow,11,9) AS ServicingFRBNum,Substring(DataRow,20,1) AS RecordType,convert(datetime,Substring(DataRow,21,6)) AS ChangeDate,Substring(DataRow,27,9) AS NewRoutingNum,Substring(DataRow,36,36) AS BankName,Substring(DataRow,72,36) AS BankAddress,Substring(DataRow,108,20) AS City,Substring(DataRow,128,2) AS State,Substring(DataRow,130,5) + '-' + Substring(DataRow,135,4) AS Zipcode,Substring(DataRow,139,3) + '-' + Substring(DataRow,142,3) + '-' +Substring(DataRow,145,4) AS Phone,Substring(DataRow,149,1) AS StatusCode,Substring(DataRow,150,1) AS DataView,Substring(DataRow,151,5) AS FillerDateUpdated datetime AS DateUpdatedFROM ##ImportGOThanks,Karen
Hi everibody. My name is Ivan and I am from Slovakia. I would like to ask you all for helping me in creating a full text search in database. I am working in Visual Web Developer 2005. I have a simple table in wich i have this atributes: ID, NAME, DESCRIPTION, CONTENT I would like to use the search for this: When I write down for example a NAME to a textarea (whatever else it can be), I need to get back the information about the ID of the apropriate NAME. I would really appreciate your help here. Please can you send me a mail with the solution or any help on ivoporsche@szm.sk Thank you very much in advance.
We are using an old version of Numara TrackIT for our helpdesk software, and it doesn't have much in the way of configurable options. There is no way to set validation or formatting on the text fields in the program.
There is a field, WO_TEXT1, Which I would like to be formatted as 6 characters, 3 integers + a period + 2 integers. The first the integers would be padded with zeros on the left, and the last 2 integers would be padded with zeros on the right.
IE, if someone enters 2, it would actually end up being 002.00 If someone enters 3.5 it would end up being 003.50 If someone enters 12.1 it would end up being 012.10 If someone enters 172.80 it would end up being 172.80
I was hoping to achieve this via an update trigger.
Below is the guts of the trigger I created, mostly as a proof of concept.
-- This update properly formats the Estimated Hours field Update t SET WO_TEXT1 = (SELECT RIGHT('000000' + CONVERT(VARCHAR(6), WO_TEXT1), 6) FROM inserted) FROM dbo.TASKS as t Where (EXISTS (SELECT * FROM inserted WHERE WOID = 24773));
I expected that this update trigger would only affect the Work Order with a WOID of 24773. Unfortunately, it updated all 21000 work orders in our system, wiping out all of the actual estimated hours that had been inserted by technicians!
Luckily I had a report that I could quick dump the 300 or so active work order's estimated hours back into the DB from (all the other Work orders are closed, and no one really cares about their estimated hours).
My question is three fold,
1) Why did my trigger update every record in the tasks table instead of just WO 24773? 2) Is using a trigger the best way of accomplishing what I'm trying to do? 3) if a trigger is the best way of accomplishing this, what should my trigger look like?
I need to get a list of customer ids and then use them as a parameter to select from a transaction table and then create a file for each customer. I have used an execute SQL task to get the list of customers and have put the result set into a variable.
How do go through the recordset to create a file for each customer?
Since my experience in VS is extremely limited, i'd like to be exused if questions sound silly.
My problem is that, at my device application project, i want to build a database that will retrieve data from .xls, or .csv, or .txt, or .mbd files. If i've noticed well, there is no support for OLEDB or ODBC, since by the time that i add tableadapter to my database.xsd and use these, after insertion i get multiple errors informing that system.data.oledb. .... or .odbc "type is not defined".
If it cannot be done, and since i still try to figure out how smart devices function, transact with databases, e.c.t. is there any suggestion?
use AFMIF EXISTS (SELECT * FROM sysobjects WHERE type = 'U' AND name='uye_idler') drop table uye_idlerCREATE TABLE uye_idler ( uye_no int NOT NULL, ) GO DECLARE @uye_numarası int Set @uye_numarası = 1 WHILE @uye_numarası < 15001 BEGIN INSERT INTO uye_idler VALUES (@uye_numarası) Set @uye_numarası = @uye_numarası + 1 EndHi , I am able to create 15000 records by the codes above .By the same way I want to create random texts as ASD ,WER,SAD,DFG etc. How can I do this ? Thanks ...
How can we create a DB for a single attribute such as ORDER DETAILS, CASH RECEIPT, TAX INVOICE having more than 2 text fields.
Also, in every form attribute such as order id is not present - in order identify the same as a primay key. So, which other attributes or fields can be considered as a primary key.
Hope this is the right forum - apologies if its not. I'm a newbie. I'm at my wits end as I cant create a full-text catalog in SQL server 2000. Let me explain (I'll try and include as much info as I can):-
When I run the following command: sp_fulltext_catalog 'Cat_Desc', 'create'
I get the following error mesaage:
Server: Msg 7619, Level 16, State 2, Procedure sp_fulltext_catalog, Line 64 The specified object cannot be found. Specify the name of an existing object.
I in as user sa. I determine this from running: select suser_sname()
The SQL Server instance is running under user: LocalSystem I determine this from the following command: