Non-Alphanumeric tag values coming back as blanks. How do I retrieve these values?

I have this snippet of code that reads an xml file. All works well with one exception. If any of the elements with a tag have something other than [0-9] or [A-Z] the value comes back as blank.   One of the elements has a dash, ('-'), in it so those names all come back blank. I see the same thing with parentheses, left '(' or right ')' plus quotation marks will cause this. Is there any way to correct this? I cannot change the values inside the xml file.

       private void btnExtract_Click(object sender, EventArgs e)
        {

            TextWriter tw = new StreamWriter(OutputFilename);

            XmlDocument xml = new XmlDocument();
            xml.LoadXml(InputFilename);


            if (xml.LastChild.Attributes != null)
            {
                foreach (XmlAttribute prop in xml.LastChild.Attributes)
                {
                    switch (prop.Name)
                    {
                        case "PhysicalName":
                            OPhysicaladdress = prop.Value;
                            break;

                        case "OResident":
                            OResident = prop.Value;
                            break;
                        case "data_source":
                            ODatasource = prop.Value;
                            break;
                        case "name":
                            OName = prop.Value;
                            break;
                    }
                }
            }
            else
            {
                Console.WriteLine("Xml object is empty");
            }

            FinalObject obj = new FinalObject
            {
                Name = OName,
                PhysicalAddress = OPhysicaladdress,
                DataSource = ODatasource,
                Resident = OResident
            };

            tw.WriteLine(obj.PhysicalAddress, obj.DataSource, obj.Name);
            /* System.IO.File.WriteAllLines(OutputFilename, FinalObject); */
        }

I have attached the source file.
DataSources_out.xml
LVL 1
rwheeler23Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

slightwv (䄆 Netminder) Commented:
The attachment looks like the output?
0
rwheeler23Author Commented:
My mistake, too many distractions. I have attached the input file.. I am trying to extract these three elements.

Physical Name
Database
Name

When any of these three contain anything other than [0-9] or [A-Z] the value returned is blank.
DataSources.xml
0
slightwv (䄆 Netminder) Commented:
I just tested the code I provided from your previous question and added parans to a name and I get data:
https://dotnetfiddle.net/uSlqhR

You didn't post enough of your code to set up a test case but I went back to your previous question and the code there and also added parans:
https://dotnetfiddle.net/1ykVTf

I don't see from that question where the example using LastChild.Attributes worked.

If you can post a sqlfiddle of using my XML example and your code, I'll take a look at it.
0
Powerful Yet Easy-to-Use Network Monitoring

Identify excessive bandwidth utilization or unexpected application traffic with SolarWinds Bandwidth Analyzer Pack.

rwheeler23Author Commented:
I will get back on this Wednesday and will let you know.  This is one of a dozen projects I am working on so it is difficult to focus on just one. I also need to learn how to use SQLFiddle.
0
slightwv (䄆 Netminder) Commented:
>>I also need to learn how to use SQLFiddle.

That is also a pretty good site to test things out but just to clarify:  sqlfiddle and dotnetfiddle that I posted are different.
0
rwheeler23Author Commented:
Looks like on both you can paste your code and see it in action. I can only assume there are some unique debugging tools on both of these sites.
0
slightwv (䄆 Netminder) Commented:
>>Looks like on both you can paste your code and see it in action.

Correct.  They allow you to test can more important, share examples with others so everyone sees the same thing.

>>I can only assume there are some unique debugging tools on both of these sites.

No more than available elsewhere.
0
rwheeler23Author Commented:
Inserting your suggestions does not appear to have made any difference. Am I missing something?
       
 private void btnExtract_Click(object sender, EventArgs e)
        {

            TextWriter tw = new StreamWriter(OutputFilename);

            XmlDocument xml = new XmlDocument();
            xml.LoadXml(InputFilename);

            XmlNodeList xnList = xml.SelectNodes("/Application/DataSourceRepository/DataObjects/DataObject");

            if (xnList != null)
            foreach (XmlNode LastChild in xnList) {
                if (xml.LastChild.Attributes != null)
                {
                    foreach (XmlAttribute prop in xml.LastChild.Attributes)
                    {
                        switch (prop.Name)
                        {
                            case "PhysicalName":
                                OPhysicaladdress = prop.Value;
                                break;

                            case "OResident":
                                OResident = prop.Value;
                                break;
                            case "data_source":
                                ODatasource = prop.Value;
                                break;
                            case "name":
                                OName = prop.Value;
                                break;
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine("Xml object is empty");
            }

            FinalObject obj = new FinalObject
            {
                Name = OName,
                PhysicalAddress = OPhysicaladdress,
                DataSource = ODatasource,
                Resident = OResident
            };

            tw.WriteLine(obj.PhysicalAddress, obj.DataSource, obj.Name);
            /* System.IO.File.WriteAllLines(OutputFilename, FinalObject); */
        }
DataSources_out.xml
0
slightwv (䄆 Netminder) Commented:
>>Inserting your suggestions does not appear to have made any difference. Am I missing something?

I'm not sure.  I don't have access to your system to test code on it.

If you provide me a Fiddle that shows the problem, I can correct it.

If you provide me the stand-alone code for a console app that I can copy/past/compile on my machine, I can correct it.

Trying to debug coded I cannot run is pretty much impossible,
0
rwheeler23Author Commented:
Here is the complete project
ExtractObjectNames.zip
0
rwheeler23Author Commented:
I need to state a correction. Clicking the button XML Sample results in this error message:

"Data at the root level is invalid. Line 1., Position 1."

This is code you have provided assistance.
0
slightwv (䄆 Netminder) Commented:
>>Clicking the button XML Sample results

What button?

>>Here is the complete project

I don't have Visual Studio.  I don't want the entire project.   Create a new one that is a console app.  That I should be able to compile with the command line to create an exe.

That said:  I looked at frmXMLExtractObjectNames.cs and don't see the code you posted.  What file should I be looking in?
0
rwheeler23Author Commented:
This the code that fails whenever there is a -,(,) etc.  If you look at the output file notice how name=POWMATQP in the beginning but goes to blank for the rest. That is because the database name is GP-POWMAT. The - is causing this.

private void btnExtract_Click(object sender, EventArgs e)
        {

            TextWriter tw = new StreamWriter(OutputFilename);

            XmlDocument xml = new XmlDocument();
            xml.LoadXml(InputFilename);

            XmlNodeList xnList = xml.SelectNodes("/Application/DataSourceRepository/DataObjects/DataObject");

            if (xnList != null)
            foreach (XmlNode LastChild in xnList) {
                if (xml.LastChild.Attributes != null)
                {
                    foreach (XmlAttribute prop in xml.LastChild.Attributes)
                    {
                        switch (prop.Name)
                        {
                            case "PhysicalName":
                                OPhysicaladdress = prop.Value;
                                break;

                            case "OResident":
                                OResident = prop.Value;
                                break;
                            case "data_source":
                                ODatasource = prop.Value;
                                break;
                            case "name":
                                OName = prop.Value;
                                break;
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine("Xml object is empty");
            }

            FinalObject obj = new FinalObject
            {
                Name = OName,
                PhysicalAddress = OPhysicaladdress,
                DataSource = ODatasource,
                Resident = OResident
            };

            tw.WriteLine(obj.PhysicalAddress, obj.DataSource, obj.Name);
            /* System.IO.File.WriteAllLines(OutputFilename, FinalObject); */
        }
0
rwheeler23Author Commented:
Now I just tried both your examples in sqlfiddle and they both work. My code is an exact copy of yours so this must have something to do with C#.
0
slightwv (䄆 Netminder) Commented:
Here is as complete an example as I can make.  I used my LINQ example from the previous question because I still feel it is the better solution.

Create a folder: C:\slightwv

I saved your XML from:
https://www.experts-exchange.com/questions/29115494/Non-Alphanumeric-tag-values-coming-back-as-blanks-How-do-I-retrieve-these-values.html#a42665195

as c:\slightwv\sample.xml

Create file c:\slightwv\XMLparse.cs with
using System;
using System.Linq;
using System.Xml.Linq;
					
public class Program
{
	public static void Main()
	{
		XDocument xml = XDocument.Load("sample.xml");

	
	var tables = from tab in xml.Descendants("DataObject")
		select new {
			PhysicalName = tab.Attribute("PhysicalName") == null ? null : tab.Attribute("PhysicalName").Value,
			data_source = tab.Attribute("data_source") == null ? null : tab.Attribute("data_source").Value,
			name = tab.Attribute("name") == null ? null : tab.Attribute("name").Value
		};
		
	foreach (var tab in tables)
	{
		//
		Console.WriteLine("Physical Name = " + tab.PhysicalName + ", Data Source = " + tab.data_source + ", Name=" + tab.name); 
	}

		
	}
}

Open in new window


Now create c:\slightwv\build.bat as:
c:\windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe -out:XMlparse.exe XMLparse.cs

Open in new window


Open a CMD prompt and:
cd \slightwv
build.bat


I get:
c:\windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe -out:XMlparse.exe XMLparse.cs
Microsoft (R) Visual C# Compiler version 4.7.2556.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240

Open in new window


Do a dir to see that it compiled:
08/28/2018  07:41 PM    <DIR>          .
08/28/2018  07:41 PM    <DIR>          ..
08/28/2018  07:32 PM         4,994,432 sample.xml
08/28/2018  07:35 PM                87 xmlparse.bat
08/28/2018  07:37 PM               722 XMLparse.cs
08/28/2018  07:41 PM             6,656 XMlparse.exe

Open in new window


Now run it and look for one that was null in your example and I get output:
c:\slightwv\XMlparse.exe | findstr "RFQSCTRL"
Physical Name = RFQSCTRL, Data Source = POWMATQP, Name=OE Control RFQ's

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
slightwv (䄆 Netminder) Commented:
We cross posted.

>>output file notice how name=POWMATQP in the beginning but goes to blank for the rest

Using my compiled console app and your example name:

XMlparse.exe | findstr "POWMATQP"
Physical Name = IVIOINFO, Data Source = POWMATQP, Name=IVItem Other Info
Physical Name = CUSTORDR, Data Source = POWMATQP, Name=Orders Table
Physical Name = CSTQUTHD, Data Source = POWMATQP, Name=OEQuotes Header
Physical Name = CSTQUTLN, Data Source = POWMATQP, Name=OEQuotes Lines
Physical Name = CSTQUTKT, Data Source = POWMATQP, Name=OEQuote Lines Kit
Physical Name = NOTELINE, Data Source = POWMATQP, Name=OE QuotesNotesLines
Physical Name = IVPLVLVN, Data Source = POWMATQP, Name=IVItmVndPriceBreak
Physical Name = QUIKSCAN, Data Source = POWMATQP, Name=OE QuickScanTable
Physical Name = TEMPQUOT, Data Source = POWMATQP, Name=OE TempSimilarQuotes
Physical Name = OEONETMQ, Data Source = POWMATQP, Name=OE OneTimeQuotes
Physical Name = RFQHEADR, Data Source = POWMATQP, Name=IV RFQHeader
Physical Name = RFQLINES, Data Source = POWMATQP, Name=IV RFQLines
Physical Name = RFQNOTES, Data Source = POWMATQP, Name=IV RFQ Notes
Physical Name = RFQSTLOG, Data Source = POWMATQP, Name=IV RFQ Transmit Log
Physical Name = RFQSCTRL, Data Source = POWMATQP, Name=OE Control RFQ's
Physical Name = PRINTERS, Data Source = POWMATQP, Name=Printer Table
Physical Name = CONTACTF, Data Source = POWMATQP, Name=Contact File Main
Physical Name = CONTACTC, Data Source = POWMATQP, Name=Contact File Contact
Physical Name = CONTACTP, Data Source = POWMATQP, Name=Contact File Product
Physical Name = CFMNNOTE, Data Source = POWMATQP, Name=Contact File Main(N)
Physical Name = CFCNNOTE, Data Source = POWMATQP, Name=Contact File Cnct(N)
Physical Name = CFPNNOTE, Data Source = POWMATQP, Name=Contact File Prod(N)
Physical Name = SHIPINFO, Data Source = POWMATQP, Name=Shipping Information
Physical Name = SHIPCARR, Data Source = POWMATQP, Name=Shipping Carriers
Physical Name = SHIPINST, Data Source = POWMATQP, Name=Shipping Remarks
Physical Name = SHIPDETL, Data Source = POWMATQP, Name=Shipment Detail
Physical Name = SHIPHEAD, Data Source = POWMATQP, Name=Shipment Header
Physical Name = SHIPITEM, Data Source = POWMATQP, Name=Shipment Detail Item
Physical Name = STAXINFO, Data Source = POWMATQP, Name=AP Notes/Sales Tax
Physical Name = STAXRMKS, Data Source = POWMATQP, Name=AP Notes & Remarks
Physical Name = STAXNOTE, Data Source = POWMATQP, Name=AP Sales Tax Notes
Physical Name = APSTNOTE, Data Source = POWMATQP, Name=AP/Sales Tax Note(N)
Physical Name = USERTBLE, Data Source = POWMATQP, Name=User ID Table
Physical Name = COMPINFO, Data Source = POWMATQP, Name=Competitive Info
Physical Name = DEPTTYPE, Data Source = POWMATQP, Name=Department Types
Physical Name = QTPORCDS, Data Source = POWMATQP, Name=OE PO Setup Records
Physical Name = QTPOCMNT, Data Source = POWMATQP, Name=OE PO Setup Comments
Physical Name = POEXNOTE, Data Source = POWMATQP, Name=PO Expedite Note
Physical Name = POEXLNNT, Data Source = POWMATQP, Name=POLine Expedite Note
Physical Name = OTAPNOTE, Data Source = POWMATQP, Name=ONETIME AP Notes
Physical Name = OEORTRCK, Data Source = POWMATQP, Name=Orders by Customer
Physical Name = ORDRFILL, Data Source = POWMATQP, Name=Order Fullfillment
Physical Name = VENDNOTE, Data Source = POWMATQP, Name=Vendor Notes
Physical Name = RFDSCTRL, Data Source = POWMATQP, Name=Control RFD's
Physical Name = RFDHEADR, Data Source = POWMATQP, Name=IV RFDHeader
Physical Name = RFDLINES, Data Source = POWMATQP, Name=IV RFDLines
Physical Name = VNDEMAILS, Data Source = POWMATQP, Name=VNDEMAILS
Physical Name = PAYRHEDR, Data Source = POWMATQP, Name=PAYROLL HEADER
Physical Name = PAYRDATA, Data Source = POWMATQP, Name=PAYROLL DETAIL
Physical Name = PGRMREFS, Data Source = POWMATQP, Name=PGRMREFS
Physical Name = ACTNALRT, Data Source = POWMATQP, Name=ACTNALRT
Physical Name = ACTNITEM, Data Source = POWMATQP, Name=ACTNITEM
Physical Name = ACTNLINK, Data Source = POWMATQP, Name=ACTNLINK
Physical Name = ACTNOTES, Data Source = POWMATQP, Name=ACTNOTES
Physical Name = ALRTNOTE, Data Source = POWMATQP, Name=ALRTNOTE
Physical Name = AMARKETS, Data Source = POWMATQP, Name=AMARKETS
Physical Name = CERTORGN, Data Source = POWMATQP, Name=CERTORGN
Physical Name = CORRACTN, Data Source = POWMATQP, Name=CORRACTN
Physical Name = CUSTINQR, Data Source = POWMATQP, Name=CUSTINQR
Physical Name = MTRJSPRT, Data Source = POWMATQP, Name=MTRJSPRT
Physical Name = MTRTAUTH, Data Source = POWMATQP, Name=MTRTAUTH
Physical Name = PRVNACTN, Data Source = POWMATQP, Name=PRVNACTN
Physical Name = SPERFRPT, Data Source = POWMATQP, Name=SPERFRPT
Physical Name = SUPPCART, Data Source = POWMATQP, Name=SUPPCART
Physical Name = SUPPDETL, Data Source = POWMATQP, Name=SUPPDETL
Physical Name = SYSCNTRL, Data Source = POWMATQP, Name=SYSCNTRL
Physical Name = POPHEADR, Data Source = POWMATQP, Name=POPHEADR
Physical Name = POPLINES, Data Source = POWMATQP, Name=POPLINES
Physical Name = POPTOSOP, Data Source = POWMATQP, Name=POPTOSOP
Physical Name = POSOPPOP, Data Source = POWMATQP, Name=POSOPPOP
Physical Name = SOPHEADR, Data Source = POWMATQP, Name=SOPHEADR
Physical Name = SOPLINES, Data Source = POWMATQP, Name=SOPLINES
Physical Name = SOPTOQOT, Data Source = POWMATQP, Name=SOPTOQOT
Physical Name = XFERHSBC, Data Source = POWMATQP, Name=XFERHSBC
Physical Name = PNTYNOTE, Data Source = POWMATQP, Name=PNTYNOTE
Physical Name = PO_FLAG, Data Source = POWMATQP, Name=PO_FLAG
Physical Name = COCPRNTD, Data Source = POWMATQP, Name=COC Printed
Physical Name = SYSCNTRL, Data Source = POWMATQP, Name=SYSCNTRL
Physical Name = ACTIVITY, Data Source = POWMATQP, Name=ACTIVITY
Physical Name = TIMECLCK, Data Source = POWMATQP, Name=TIMECLCK
Physical Name = ZZTEST, Data Source = POWMATQP, Name=ZZTEST
Physical Name = CSTQUTHD, Data Source = POWMATQP, Name=CSTQUTHD
Physical Name = POEXLNNT, Data Source = POWMATQP, Name=POEXLNNT
Physical Name = DOCMTYPE, Data Source = POWMATQP, Name=DOCMTYPE
Physical Name = RESNCODE, Data Source = POWMATQP, Name=RESNCODE
Physical Name = SOPHDRIM, Data Source = POWMATQP, Name=SOPHDRIM
Physical Name = SOPLINIM, Data Source = POWMATQP, Name=SOPLINIM
Physical Name = CUSTORDR, Data Source = POWMATQP, Name=CUSTORDR
Physical Name = PAYRDATA, Data Source = POWMATQP, Name=PAYRDATA
Physical Name = CSTCHNGR, Data Source = POWMATQP, Name=CSTCHNGR
Physical Name = Customers_to_Delete, Data Source = POWMATQP, Name=Customers_to_Delete
Physical Name = INCDDESC, Data Source = POWMATQP, Name=INCDDESC
Physical Name = INCDRESP, Data Source = POWMATQP, Name=INCDRESP
Physical Name = INVSUMRY, Data Source = POWMATQP, Name=INVSUMRY
Physical Name = POSOPWRK, Data Source = POWMATQP, Name=POSOPWRK
Physical Name = IVPLVLVN, Data Source = POWMATQP, Name=IVPLVLVN
Physical Name = Test, Data Source = POWMATQP, Name=Test
Physical Name = CUSTLIST, Data Source = POWMATQP, Name=CUSTLIST
Physical Name = ITMRFQPO, Data Source = POWMATQP, Name=ITMRFQPO
Physical Name = PARTLIST, Data Source = POWMATQP, Name=PARTLIST
Physical Name = EMAILLOG, Data Source = POWMATQP, Name=EMAILLOG
Physical Name = , Data Source = POWMATQP, Name=
Physical Name = NavbarMenuTbl, Data Source = POWMATQP, Name=NavbarMenuTbl

Open in new window

0
rwheeler23Author Commented:
I will be trying this out shortly and the first thing I will try is changing POWMATQP in the input xml file to GP-POWMAT and see if I get a value for name.
0
slightwv (䄆 Netminder) Commented:
Worked for me:
test.exe | findstr "GP-POWMAT"
Physical Name = BM00101, Data Source = GP-POWMAT, Name=BM00101
Physical Name = BM00111, Data Source = GP-POWMAT, Name=BM00111
Physical Name = CM00100, Data Source = GP-POWMAT, Name=CM00100
Physical Name = CM20200, Data Source = GP-POWMAT, Name=CM20200
Physical Name = IV00101, Data Source = GP-POWMAT, Name=IV00101
Physical Name = IV00102, Data Source = GP-POWMAT, Name=IV00102
Physical Name = IV00103, Data Source = GP-POWMAT, Name=IV00103
Physical Name = IV00104, Data Source = GP-POWMAT, Name=IV00104
Physical Name = IV00105, Data Source = GP-POWMAT, Name=IV00105
Physical Name = IV00106, Data Source = GP-POWMAT, Name=IV00106
Physical Name = IV00107, Data Source = GP-POWMAT, Name=IV00107
Physical Name = IV00108, Data Source = GP-POWMAT, Name=IV00108
Physical Name = IV10200, Data Source = GP-POWMAT, Name=IV10200
Physical Name = IV40201, Data Source = GP-POWMAT, Name=IV40201
Physical Name = IV40202, Data Source = GP-POWMAT, Name=IV40202
Physical Name = IV40400, Data Source = GP-POWMAT, Name=IV40400
Physical Name = IV40401, Data Source = GP-POWMAT, Name=IV40401
Physical Name = IV40600, Data Source = GP-POWMAT, Name=IV40600
Physical Name = IV40700, Data Source = GP-POWMAT, Name=IV40700
Physical Name = IV41100, Data Source = GP-POWMAT, Name=IV41100
Physical Name = MC40000, Data Source = GP-POWMAT, Name=MC40000
Physical Name = PM00200, Data Source = GP-POWMAT, Name=PM00200
Physical Name = PM00300, Data Source = GP-POWMAT, Name=PM00300
Physical Name = PM00400, Data Source = GP-POWMAT, Name=PM00400
Physical Name = PM10300, Data Source = GP-POWMAT, Name=PM10300
Physical Name = PM30200, Data Source = GP-POWMAT, Name=PM30200
Physical Name = PM30300, Data Source = GP-POWMAT, Name=PM30300
Physical Name = POP10100, Data Source = GP-POWMAT, Name=POP10100
Physical Name = POP10110, Data Source = GP-POWMAT, Name=POP10110
Physical Name = POP10300, Data Source = GP-POWMAT, Name=POP10300
Physical Name = POP10500, Data Source = GP-POWMAT, Name=POP10500
Physical Name = POP10550, Data Source = GP-POWMAT, Name=POP10550
Physical Name = POP10600, Data Source = GP-POWMAT, Name=POP10600
Physical Name = POP30100, Data Source = GP-POWMAT, Name=POP30100
Physical Name = POP30110, Data Source = GP-POWMAT, Name=POP30110
Physical Name = POP30300, Data Source = GP-POWMAT, Name=POP30300
Physical Name = POP40100, Data Source = GP-POWMAT, Name=POP40100
Physical Name = POP70100, Data Source = GP-POWMAT, Name=POP70100
Physical Name = RM00101, Data Source = GP-POWMAT, Name=RM00101
Physical Name = RM00102, Data Source = GP-POWMAT, Name=RM00102
Physical Name = RM00103, Data Source = GP-POWMAT, Name=RM00103
Physical Name = RM00301, Data Source = GP-POWMAT, Name=RM00301
Physical Name = RM10301, Data Source = GP-POWMAT, Name=RM10301
Physical Name = RM30701, Data Source = GP-POWMAT, Name=RM30701
Physical Name = RM50101, Data Source = GP-POWMAT, Name=RM50101
Physical Name = RM50103, Data Source = GP-POWMAT, Name=RM50103
Physical Name = SOP10100, Data Source = GP-POWMAT, Name=SOP10100
Physical Name = SOP10107, Data Source = GP-POWMAT, Name=SOP10107
Physical Name = SOP10200, Data Source = GP-POWMAT, Name=SOP10200
Physical Name = SOP10202, Data Source = GP-POWMAT, Name=SOP10202
Physical Name = SOP30200, Data Source = GP-POWMAT, Name=SOP30200
Physical Name = SOP30201, Data Source = GP-POWMAT, Name=SOP30201
Physical Name = SOP30300, Data Source = GP-POWMAT, Name=SOP30300
Physical Name = SOP40100, Data Source = GP-POWMAT, Name=SOP40100
Physical Name = SOP40200, Data Source = GP-POWMAT, Name=SOP40200
Physical Name = SOP40300, Data Source = GP-POWMAT, Name=SOP40300
Physical Name = SOP40400, Data Source = GP-POWMAT, Name=SOP40400
Physical Name = SOP50100, Data Source = GP-POWMAT, Name=SOP50100
Physical Name = SOP60100, Data Source = GP-POWMAT, Name=SOP60100
Physical Name = SOP60300, Data Source = GP-POWMAT, Name=SOP60300
Physical Name = SOP70100, Data Source = GP-POWMAT, Name=SOP70100
Physical Name = SY00500, Data Source = GP-POWMAT, Name=SY00500
Physical Name = SY00600, Data Source = GP-POWMAT, Name=SY00600
Physical Name = SY01200, Data Source = GP-POWMAT, Name=SY01200
Physical Name = SY03000, Data Source = GP-POWMAT, Name=SY03000
Physical Name = SY03300, Data Source = GP-POWMAT, Name=SY03300
Physical Name = SY03900, Data Source = GP-POWMAT, Name=SY03900
Physical Name = TEMPQUOTE, Data Source = GP-POWMAT, Name=TEMPQUOTE
Physical Name = test_locking, Data Source = GP-POWMAT, Name=test_locking
Physical Name = MyQuotes, Data Source = GP-POWMAT, Name=MyQuotes
Physical Name = MyQuotesN, Data Source = GP-POWMAT, Name=MyQuotesN

Open in new window

0
rwheeler23Author Commented:
I am heading to my office right now and will try this straight away and let you know.
0
rwheeler23Author Commented:
Bingo, we have success! Thank you for all your assistance and patience.
0
rwheeler23Author Commented:
Thanks again!
0
slightwv (䄆 Netminder) Commented:
Glad you got it working and happy to help.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Databases

From novice to tech pro — start learning today.