|  | Posted by KEN on 06/28/07 22:12 
Thanks,
 I Started by writing a ActiveX data transformation object I thought a
 stored procedure might be better because I can call it when the xml
 file hits our server rather than scheduling it because the file name
 will change.  Would you mind posting the code for a good Active X
 solution the link you referenced got truncated.
 
 
 
 
 
 
 
 
 On Jun 28, 2:44 pm, Erland Sommarskog <esq...@sommarskog.se> wrote:
 > KEN (kenkopi...@gmail.com) writes:
 > > What I really need is a way preferably in t-sql to get a xml from a
 > > path open it and input the data
 >
 > Since you use OPENXML, I assume that you are on SQL2000, in which
 > case your chances to get it working are not that bright. If the
 > XML documents are small, maybe.
 >
 > > --      Let's now first read the XML file into a temporary table
 > > --      Create temporary table first
 > > CREATE TABLE #tmpFileLines (rowID int IDENTITY, lineData
 > > nvarchar(255))
 >
 > > --      Insert lines from files into temp table (using xp_cmdshell)
 > > INSERT #tmpFileLines EXEC master.dbo.xp_cmdshell 'TEXT Z:\services
 > > \emds'
 >
 > Can you safely assume that no line has more than 255 characters?
 >
 > And can you assume that rowID is really assigned in the order the rows
 > are returned from xp_cmdshell? Maybe, but it's a little iffy.
 >
 > > DECLARE @strXMLText nvarchar(4000)
 >
 > And can you safely assume that no XML document is more than 4000 chars.
 >
 > > --      Reading the XML data from the table into a string variable
 > > --      This string variable is used with OPENXML
 > > SELECT @strXMLText =
 > >      CASE rowID WHEN 1 THEN
 > >           ISNULL(RTRIM(lineData), '')
 > >      ELSE
 > >           @strXMLText + ISNULL(RTRIM(lineData), '')
 > >      END
 > > FROM #tmpFileLines ORDER BY rowID ASC
 >
 > And here's one thing you cannot rely on at all. The correct result of
 >
 >      SELECT @x = @x + col FROM tbl
 >
 > and its variations is undefined. You may get what you expect (and often
 > you do), or you may get something else.
 >
 > This particular problem could be addressed byh the use of a cursor, but
 > combined with the limitations of the XML document, I would not deem this
 > as a suitable solution.
 >
 > If you want to run this on the SQL Server box, write an agent job in
 > VBscript that reads the file and connects to SQL Server. (Agent jobs
 > can be ActiveX tasks.)
 >
 > --
 > Erland Sommarskog, SQL Server MVP, esq...@sommarskog.se
 >
 > Books Online for SQL Server 2005 athttp://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books...
 > Books Online for SQL Server 2000 athttp://www.microsoft.com/sql/prodinfo/previousversions/books.mspx
  Navigation: [Reply to this message] |