473,405 Members | 2,185 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,405 software developers and data experts.

Printing a field with a hyphen in ?

Hi,

I have a field in a select query: 'Metal-XS' which is causing a problem
The recordset should look like: RS2("Metal-XS") but it says this does
not exist, and I cannot get the SQL to work in ASP when I add this
field. Is there any code way around this, or should I edit the db and
change/create a new field ?

Thanks

David

Sep 25 '06 #1
9 1802
"David" <da*********@scene-double.co.ukwrote in message
news:11**********************@i42g2000cwa.googlegr oups.com...
Hi,

I have a field in a select query: 'Metal-XS' which is causing a problem
The recordset should look like: RS2("Metal-XS") but it says this does
not exist, and I cannot get the SQL to work in ASP when I add this
field. Is there any code way around this, or should I edit the db and
change/create a new field ?
Don't know why a hyphenated field name fails.

Try enclosing it in brackets -- as is needed for reserved words:

RS2("[Metal-XS]").Value

Or maybe it just wants ".Value"...
Sep 25 '06 #2
David wrote:
Hi,

I have a field in a select query: 'Metal-XS' which is causing a
problem The recordset should look like: RS2("Metal-XS") but it says
this does not exist, and I cannot get the SQL to work in ASP when I
add this field. Is there any code way around this, or should I edit
the db and change/create a new field ?
I would recommend the latter. Nonstandard characters should definitely
be avoided*, and if you have the opportunity to eliminate them, you
should take it.
If you can't do this for some reason, you will need to remember to
surround the field name with brackets [] when referencing it in a query
run via ADO.
* Also, reserved keywords should be avoided:
http://www.aspfaq.com/show.asp?id=2080
--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.
Sep 25 '06 #3
McKirahan wrote:
Don't know why a hyphenated field name fails.

Try enclosing it in brackets -- as is needed for reserved words:

RS2("[Metal-XS]").Value
That suggestion will definitely cause an error with the MSSQL OLE DB
provider. If the SELECT statement looks anything like this...

SELECT [Metal-XS] FROM ...

....then the correct way to read the value is:

RS2.Fields("Metal-XS").Value

--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms.
Sep 25 '06 #4
Bob Barrows [MVP] wrote:
Nonstandard characters should definitely be avoided*, and
if you have the opportunity to eliminate them, you should
take it.
Why do you say that, Bob? For that matter, how do you define "nonstandard"?
According to this, there exist rules that dictate when delimiting is
required:

http://msdn.microsoft.com/library/en...on_03_6e9e.asp

But if delimited identifiers are acceptible to SQL Server, what demands that
they *definitely* be avoided?

There was a time when I might have said the same, but after the first time I
needed to deal with delimited identifiers (a vendor-supplied DB, of course),
it became -- for me -- a solved problem, and it only took a minute to
understand the concept. So what's the big deal?


--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms.
Sep 25 '06 #5
Dave Anderson wrote:
Bob Barrows [MVP] wrote:
>Nonstandard characters should definitely be avoided*, and
if you have the opportunity to eliminate them, you should
take it.

Why do you say that, Bob? For that matter, how do you define
"nonstandard"?
This is defined in the article you cite below. See "Rules for Regular
Identifiers"
According to this, there exist rules that dictate when
delimiting is required:

http://msdn.microsoft.com/library/en...on_03_6e9e.asp

But if delimited identifiers are acceptible to SQL Server, what
demands that they *definitely* be avoided?
I should have said "in my opinion" (but I'm definitely not alone in that
opinion). Just because the rdbms provides a way for those characters to
be handled does not mean one should make it handle them (not that this
is creating any kind of overhead for the dbms - I'm not saying that).

I hate having to remember to use the brackets in special cases so I
avoid creating situations requiring their use. If I used brackets for
all object names, regular and irregular, then it would not be such a big
deal for me, I admit.
>
There was a time when I might have said the same, but after the first
time I needed to deal with delimited identifiers (a vendor-supplied
DB, of course), it became -- for me -- a solved problem, and it only
took a minute to understand the concept. So what's the big deal?
Yes, I've had to deal with vendor-supplied and legacy databases, and
cursed the creators every time I had to type a delimiter. I like to use
RapidSQL, which has a nice code generator. Unfortunately, that code
generator does not delimit object names, so I wind up having to go in
and insert delimiters where necessary.

--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.
Sep 25 '06 #6
replace the name with the numerical position equivalent such as

RS2(0)

to see if it is the name causing the problem or if your query is faulty

"David" <da*********@scene-double.co.ukwrote in message news:11**********************@i42g2000cwa.googlegr oups.com...
Hi,

I have a field in a select query: 'Metal-XS' which is causing a problem
The recordset should look like: RS2("Metal-XS") but it says this does
not exist, and I cannot get the SQL to work in ASP when I add this
field. Is there any code way around this, or should I edit the db and
change/create a new field ?

Thanks

David

Sep 25 '06 #7
But if delimited identifiers are acceptible to SQL Server, what demands
that they *definitely* be avoided?
Because they are a P.I.T.A. to everyone who has to remember when to put
square brackets around a name.

Also, there are bugs in SQL Server, e.g. many of the internal procedures for
iterating through databases will fail if there is a dash in the name,
because the name is not always properly delimited. If Microsoft can forget
to bullet-proof code, so can the rest of us.
There was a time when I might have said the same, but after the first time
I needed to deal with delimited identifiers (a vendor-supplied DB, of
course), it became -- for me -- a solved problem, and it only took a
minute to understand the concept. So what's the big deal?
The range of expertise for accessing a database will vary -- maybe you are
very smart compared to the next guy who will work on your system. Why force
delimiters when you don't need to? This seems like putting kilometers
instead of miles on the speedometers of US-based vehicles because the math
is easy and everyone else in the world is using metric. While and having
grown up in Canada this wouldn't be a problem for me, I can certainly
envision the /*avoidable*/ chaos.

What makes the alternative (leaving the column name as is, and requiring
delimiters) so desirable?

A
Sep 25 '06 #8
Bob Barrows [MVP] wrote:
Dave Anderson wrote:
>Bob Barrows [MVP] wrote:
>>Nonstandard characters should definitely be avoided*, and
if you have the opportunity to eliminate them, you should
take it.

Why do you say that, Bob? For that matter, how do you define
"nonstandard"?

This is defined in the article you cite below. See "Rules for Regular
Identifiers"
I should have said that I tend to define this standard a little more
strictly. I doubt you will find an object name containing anything but
aA-zZ in any database I create. I will use underscores, but not for
objects that will be used in sql statements (constraint names, idex
names, etc.)

But this is just my prejudice. I'm not sure what lead me in that
direction. Maybe it was the first time I had a VB function bomb due to
the absence of delimiters in a sql statement (back when I was using
dynamic sql).

--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.
Sep 25 '06 #9
Aaron Bertrand [SQL Server MVP] wrote:
Also, there are bugs in SQL Server, e.g. many of the
internal procedures for iterating through databases
will fail if there is a dash in the name, because the
name is not always properly delimited.
I did not know this. I was under the impression that SQL Server uses the
internal identifiers [id column in sysobjects] for internal processes.
...Why force delimiters when you don't need to?
I generally don't. But I wouldn't be afraid to use them if I felt there were
a good reason to do so. More to the point, I do not care when someone else
does, and I certainly wouldn't admonish them for doing so. In my opinion, it
is no different than dealing with case sensitivity in JScript or having to
Dim your variables with Option Explicit in VBScript.
...What makes the alternative (leaving the column name
as is, and requiring delimiters) so desirable?
Well, that's a good question. Why would case sensitivity in JScript be
desirable when the alternative is "easier"? Why would
document.getElementById() be desirable when document.all[] is "easier"? Why
does Rice play Texas[1]?

[1] Kennedy's answer to his own rhetorical question is quite relevant here.

--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms.
Sep 25 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

27
by: The Bicycling Guitarist | last post by:
Hi. I found the following when trying to learn if there is such a thing as a non-breaking hyphen. Apparently Unicode has a ‑ but that is not well-supported, especially in older browsers. Somebody...
13
by: Matt | last post by:
I would like to set the "list-style-type" to be a hyphen (-). How can I accomplish this in a style sheet. I tried list-style-type: hyphen; and list-style-type: dash; but neither worked. I also...
22
by: stevenkobes | last post by:
If a word has a hyphen in it, IE will permit a line break at the hyphen, but Firefox/Mozilla won't. Apparently the Firefox behavior is standards-compliant, but it is not what I want. Is there a...
14
by: Larry R Harrison Jr | last post by:
I have designed databases but have never come across any complications due to the ridiculous situation of a hyphenated last name. As a database designer (very junior level) I disdain anything...
7
by: Tizzah | last post by:
What is wrong with that? regex = /^(http|https):\/\/+({1}+)*\.{2,5}(({1,5})?\/.*)?$/ if(field.hpage.value != regex.test(field.hpage.value)){ alert("Bad Homepage") field.hpage.focus()...
1
by: Curtis | last post by:
I am having a problem with the coding below that someone was trying to help me with in another website. I have been to several websites and hopefully here I can get it resolved. I inherited this...
4
by: Rubin | last post by:
1) I want to show a breaking hyphen in Mozilla 1.5.0.4 How do I do that? "Unicode standard annex #14", <http://www.unicode.org/reports/tr14/>, defines 4 breaking hyphens. <quote> Breaking...
6
by: Kc-Mass | last post by:
In a standard Ascii table a dash or hyphen is decimal 45. A period or dot is decimal 46. If I sort a table or recordset of mixed character string ascending in Access, those strings beginning with...
2
by: madval | last post by:
hi, i need your help, i'll receive some ms word documents (paragraphs, bullets, different fonts in a document -family-size-format, images, etc. a "normal" document) and i need to print them on a...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.