Group:  Other Microsoft Office Products ยป microsoft.public.infopath
Thread: Looking for basic info on queries

DotNetBag
.NET Development Newsgroups

HTVi
TV Discussion Newsgroups

Our Hot Pick: Rising Antivirus 2006 - Certified by TUV & Checkmark! Get 10% discount by entering this coupon code: ONDISCOUNT10
Rising Antivirus 2006

Looking for basic info on queries
Ray 09.07.2006 09:51:01
I think I'm mising something blindingly obvious, but how does one query data
from a database (SQL) using InfoPath? I understand the basics of databases
and can quite happily create queries, I just don't see how to link them to
the forms I design. The help files aren't helpful, they just keep telling me
I can do it (but not how) and all I can find here are more advanced
questions. Is there a simple guide to running queries on databases in
InfoPath?

I have a simple form which submits data to the database but I want to also
be able to query the database to find 'null' entries and to then be able to
enter that data.

Any guidance or suggestions would be appreciated. Thanks.
RE: Looking for basic info on queries
S.Y.M. Wong-A-Ton 09.07.2006 15:10:02
Querying databases in InfoPath takes place through data connections. If your
SQL statement needs to be "dynamic", you can create a data connection to a
table and then retrieve and modify the SQL for the data connection through
code (for an example on how to query through code, see
http://enterprise-solutions.swits.net/infopath/query-access-database-list-numbers.htm).
If your SQL statement is "static", you can create a data connection to a
table and just edit the SQL statement for the data connection through "Tools
[Quoted Text]
> Data Connections > Modify > Edit SQL".

You could also use either ADO code or web services (see
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_ip2003_ta/html/OfficeInfoPathWebServiceASPNET.asp)
to query databases and return results. Also see
http://support.microsoft.com/?scid=kb;en-us;826992&spid=2515&sid=229
---
S.Y.M. Wong-A-Ton


"Ray" wrote:

> I think I'm mising something blindingly obvious, but how does one query data
> from a database (SQL) using InfoPath? I understand the basics of databases
> and can quite happily create queries, I just don't see how to link them to
> the forms I design. The help files aren't helpful, they just keep telling me
> I can do it (but not how) and all I can find here are more advanced
> questions. Is there a simple guide to running queries on databases in
> InfoPath?
>
> I have a simple form which submits data to the database but I want to also
> be able to query the database to find 'null' entries and to then be able to
> enter that data.
>
> Any guidance or suggestions would be appreciated. Thanks.
RE: Looking for basic info on queries
Ray 10.07.2006 21:41:01
Many thanks for this, I think I can see how it works and how I can use it.

Having said that, I've tried to adapt the script in your cookbook and I
can't quite get it to work. It has a problem with the syntax of my SQL
command:
"The query cannot be run for the following DataObject: Main connection
InfoPath cannot run the specified query.
[0x80040E14][Microsoft OLE DB Provider for SQL Server] Incorrect syntax near
the keyword 'WHERE'."
I expect this is because I'm trying to query using a text string rather than
numbers and I can't get the script to generate the correct syntax. I'm only
searching for a single record so I have:
//Retreive record to check
var lookupterm =
XDocument.DOM.selectSingleNode("/dfs:myFields/my:search").text;

//construct new SQL command
var sqlCommand = origCommand;

if (lookupterm != "")
{
sqlCommand += " WHERE Name = " + lookupterm
}
---
It's obvious now, 'lookupterm' is a string not a variable, so this is
actually a very long way to ask the question, how do I define a string in
this script language? (it's late here and I'm sure I'll be able to work it
out in the morning, but an answer would be appreciated!)

Many thanks

Ray
RE: Looking for basic info on queries
Ray 11.07.2006 14:12:02
I knew I'd be able to work it out at a more sensible time. It was a problem
with the syntax caused by the fact that the connection was ordering the
records (I can't remember if I set it up this way in InfoPath or in the
database itself):

select
"WID","Name","Name_long","Class","Volume","Average","Variance","Stock","Minimum","Maximum","Secondary_min","Secondary_max"
from "dbo"."Wares" as "Wares" order by "Name"

By removing the part 'order by "Name"' (I'm only looking for one record)
from the database connection and adjusting my code to include the ' to
identify a string, it now works

"Ray" wrote:

[Quoted Text]
> Many thanks for this, I think I can see how it works and how I can use it.
>
> Having said that, I've tried to adapt the script in your cookbook and I
> can't quite get it to work. It has a problem with the syntax of my SQL
> command:
> "The query cannot be run for the following DataObject: Main connection
> InfoPath cannot run the specified query.
> [0x80040E14][Microsoft OLE DB Provider for SQL Server] Incorrect syntax near
> the keyword 'WHERE'."
> I expect this is because I'm trying to query using a text string rather than
> numbers and I can't get the script to generate the correct syntax. I'm only
> searching for a single record so I have:
> //Retreive record to check
> var lookupterm =
> XDocument.DOM.selectSingleNode("/dfs:myFields/my:search").text;
>
> //construct new SQL command
> var sqlCommand = origCommand;
>
> if (lookupterm != "")
> {
> sqlCommand += " WHERE Name = " + lookupterm
> }
> ---
> It's obvious now, 'lookupterm' is a string not a variable, so this is
> actually a very long way to ask the question, how do I define a string in
> this script language? (it's late here and I'm sure I'll be able to work it
> out in the morning, but an answer would be appreciated!)
>
> Many thanks
>
> Ray
RE: Looking for basic info on queries
S.Y.M. Wong-A-Ton 11.07.2006 16:59:02
Good job! :) Glad you got it too work.
---
S.Y.M. Wong-A-Ton


"Ray" wrote:

[Quoted Text]
> I knew I'd be able to work it out at a more sensible time. It was a problem
> with the syntax caused by the fact that the connection was ordering the
> records (I can't remember if I set it up this way in InfoPath or in the
> database itself):
>
> select
> "WID","Name","Name_long","Class","Volume","Average","Variance","Stock","Minimum","Maximum","Secondary_min","Secondary_max"
> from "dbo"."Wares" as "Wares" order by "Name"
>
> By removing the part 'order by "Name"' (I'm only looking for one record)
> from the database connection and adjusting my code to include the ' to
> identify a string, it now works
>
> "Ray" wrote:
>
> > Many thanks for this, I think I can see how it works and how I can use it.
> >
> > Having said that, I've tried to adapt the script in your cookbook and I
> > can't quite get it to work. It has a problem with the syntax of my SQL
> > command:
> > "The query cannot be run for the following DataObject: Main connection
> > InfoPath cannot run the specified query.
> > [0x80040E14][Microsoft OLE DB Provider for SQL Server] Incorrect syntax near
> > the keyword 'WHERE'."
> > I expect this is because I'm trying to query using a text string rather than
> > numbers and I can't get the script to generate the correct syntax. I'm only
> > searching for a single record so I have:
> > //Retreive record to check
> > var lookupterm =
> > XDocument.DOM.selectSingleNode("/dfs:myFields/my:search").text;
> >
> > //construct new SQL command
> > var sqlCommand = origCommand;
> >
> > if (lookupterm != "")
> > {
> > sqlCommand += " WHERE Name = " + lookupterm
> > }
> > ---
> > It's obvious now, 'lookupterm' is a string not a variable, so this is
> > actually a very long way to ask the question, how do I define a string in
> > this script language? (it's late here and I'm sure I'll be able to work it
> > out in the morning, but an answer would be appreciated!)
> >
> > Many thanks
> >
> > Ray

Home | Search | Terms | Imprint | Contact
Newsgroups Reader - provided by WiredBox.Net