|
Backslash doubling is an issue for literal strings in C-derived languages because the backslash character is used as an escape, to allow non-printable characters to be specified. Therefore to get an actual backslash in the output, you must double it. This is the same as using "" in a VB literal string to indicate a single " character (otherwise a " ends the string). If you output the final string to the console, you will see that any doubled backslashes in the literal have become single backslashes in the actual string.
C# also supports @-literals, where you place an @ before the first " character. In this type of string literal, the backslash character does not operate as an escape, it represents an actual backslash. The only escape sequence is "" to represent a single " character.
Therefore the following literals are equivalent:
string regular = "\\\\servername\\directory\\imagename";
string atLiteral = @"\\servername\directory\imagename";
System.Diagnostics.Debug.Assert( regular == atLiteral ); You do not need to pass - indeed, it is strictly an error to pass - doubled backslashes to the filesystem. It treats multiple backslashes as indicating no change of directory. You can make a canonical path, that is with any multiple backslashes removed and any directory change (. or ..) parts processed, by calling Path.GetFullPath . A double backslash is only significant at the beginning of a path, where it indicates that the first part of the path is a machine name for a UNC path.
|
|
|
|
|
I have three tables
Item(Item_ID, Item_Name)
1 shirt
2 hat
Color(Color_ID, Color_Name)
1 blue
2 red
3 green
Item_Color(Item_Color_ID, Item_ID, Color_ID)
1 1 1
2 1 2
3 2 1
4 2 2
5 2 3
What is the query that would give me the result:
Item_ID Item_Name Color_Name1 Color_Name2 Color_Name3
1 shirt blue red null
2 hat blue red green
I seem to continue to come up short.
I tried:
Select Item_Name, GROUP_CONCAT(DISTINCT Item_Color) FROM Item Left Join Item_Color On Item_Color.Item_Id=Item.Item_ID Left Join Color ON Item_Color.Color_ID=Color.Color_ID Group By Item_Name
but this returns the colors in a blue,red,green format, not in seperate columns.
-- modified at 20:01 Tuesday 24th July, 2007
Thanks!
Sean Murphy
"All things great and small start at the same point, the first step."
|
|
|
|
|
Hi Sean
The following would give you the results that you asked-for:
select I.Item_ID, I.ItemName,
case when Blue.Item_ID is not null then 'Blue' else null end,
case when Red.Item_ID is not null then 'Red' else null end,
case when Green.Item_ID is not null then 'Green' else null end
from Item I
left outer join Item_Color Blue
on Blue.Item_Id = I.Item_Id
and Blue.Color_Id = 1
left outer join Item_Color Red
on Red.Item_Id = I.Item_Id
and Red.Color_Id = 2
left outer join Item_Color Green
on Green.Item_Id = I.Item_Id
and Green.Color_Id = 3
order by I.Item_ID However, it would need to be amended to handle additional colors. If you're using SQL-Server 2005 then you could use the new Pivot[^] query operator.
Regards
Andy
If you want to thank me for my help, please vote my message by clicking one of numbers beside "Rate this message".
|
|
|
|
|
Hi,all
i m using sqlserver 2005 and asp.net 2.0
i m using ODBC provider for database access
connection string is
<add key="odbConn" value="Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=Mydatabase;user id=sa;password=sa"/>
but when i m debuging the program it's show error
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied
What is the problem Please help me its urgent
i have installed sqlserver2005 in server mixedmode authentication
rajesh
|
|
|
|
|
Please rename your message title to something with meaning. Please read the forum guidelines. Messages with 'urgent' or 'please help' are considered rude and may not get you any help.
_____________________________________________
Flea Market! It's just like...it's just like...A MINI-MALL!
|
|
|
|
|
did you try to make a GOOGLE[^]search?
I Love SQL
|
|
|
|
|
rajesh rajbhar wrote: SQL Server does not exist or access denied
It means that it either cannot access SQL Server via a TCP connection (you gave it a network address in the connection string) or you have not supplied the correct credentials to gain access.
Also, why are you using an ODBC connection to conned to a SQL Server database? Why aren't you using the SQL Provider built in to .NET?
Upcoming events:
* Glasgow: Mock Objects, SQL Server CLR Integration, Reporting Services, db4o, Dependency Injection with Spring ...
"I wouldn't say boo to a goose. I'm not a coward, I just realise that it would be largely pointless."
My website
|
|
|
|
|
I don't think he knows what he's using, because that's an OLE DB connection string (Provider= is a dead giveaway, ODBC uses Driver).
|
|
|
|
|
|
First of all, don't put urgent in your thread subject line. It just pisses people off.
rajesh rajbhar wrote: SQL Server does not exist or access denied
Check that the service is running and you don't have a firewall blocking it or something silly like that.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
|
|
|
|
|
Please tell me that you aren't connecting with the sa account. This is extremely bad practice. sa has access to pretty much everything in SQL Server and you are basically opening up your dataaccess code to the point where your attack surface is too large. Use a limited access account only.
And, as others have stated, don't use urgent in your title. Just because you think it's urgent it doesn't mean that anybody else will care.
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
Pete O'Hanlon wrote: tell me that you aren't connecting with the sa account.
By the looks of his connection string, I'd say so. Even the password is the same as username. That is really, really bad...
"It's only that urgent if you have to pee.." - Dave Kreskowiak
|
|
|
|
|
SQL 2005 installs with Network connections disabled by default. Only the local shared memory connection library is enabled. Since the error is coming from DBNETLIB, you are trying to connect with a network connection (most likely because of the reference to localhost (a TCP-IP network name). You must use the client configuration utility to enable the TCP connection. (or change your code to use the SQL Native client classes instead of OleDb).
And avoid using "urgent" in you post topics, it is rude.
|
|
|
|
|
I have tried to approach this from all angles except the working ones. Please help me if you have any idea what I'm doing wrong.
* I have a database, let's say "myDB"
* In myDB I have a stored procedure called myDB..procStartJob
* When I created this procedure I was logged in as the sysadmin (sa)
* I created this sp and used the "With Execute As OWNER" clause
This procStartJob has code inside it which executes msdb.dbo.sp_start_job
My problem is that whenever I execute myDB..procStartJob I get the following message:
EXECUTE permission denied on object 'sp_start_job'
But I specified that the procedure should "EXECUTE AS OWNER" which according to me is the sysadmin. In books online sp_start_job's documentation specifies that members of the sysadmin fixed server role can execute this sp. So why can't I?
Thank you in advance!
_______________________________________________________________________
http://www.readytogiveup.com/[ ^]
"you can't forget something you never knew..." M. Du Toit
|
|
|
|
|
The problem is that after reducing MSDTC security to "No Authentication", it mostly seems to work correctly, except that after a brief period of inactivity (a few minutes), the first attempt to use DTC fails, but subsequent attempts are successful, until inactivity again.
The original environment was a single machine with SQL Server installed and a service on another machine that would connect to the same SQL Server but utilizing different connections concurrently within the same transaction (using TransactionScope). This configuration worked fine.
The single machine with SQL Server installed has been changed to a cluster of two machines. Otherwise the configuration is the same. The "Distributed Transaction Coordinator" service is running as the Network Service account in all cases. Now the following error is generated when the second connection is made in the transaction (presumably promoting the transaction to DTC):
System.Transactions.TransactionManagerCommunicationException
Communication with the underlying transaction manager has failed.
All of these machines are running Win2003 SP1. I've also tried using my local machine (which is XP Pro SP2) as the service machine with the same results. The current solution is to modify the MSDTC tab in Component Services from "Mutual Authentication Required" to "No Authentication Required". This isn't an ideal solution, but seems to work...somewhat. After about 15 minutes of inactivity, the first attempt to connect to SQL Server in the transaction generates the same error as above. Also, the following entry now appears about 5 times in a row in the Security event log. Any subsequent connections seem to work fine until another period of inactivity.
Logon Failure:
Reason: Unknown user name or bad password
User Name: SQLMACHINE$
Domain: MYDOMAIN
Logon Type: 3
Logon Process: NtLmSsp
Authentication Package: NTLM
Workstation Name: SQLMACHINE
Caller User Name: -
Caller Domain: -
Caller Logon ID: -
Caller Process ID: -
Transited Services: -
Source Network Address: xxx.xxx.xxx.xxx
Source Port: 1623
A Google search yielded few results about NtLmSsp and the error. One solution I've found to prevent the initial failure is to run ipconfig /flushdns prior to the first call and that seems to prevent it. However, after the 15 minute period of inactivity, it seems to start again.
I've also tried the recommendations from the following links with no success.
http://blogs.msdn.com/florinlazar/archive/2004/06/18/159127.aspx
http://blogs.msdn.com/florinlazar/archive/2004/03/02/82916.aspx
http://technet.microsoft.com/en-us/library/bb457156.aspx#EGAA
The ideal solution would be to use the "Incoming Caller Authentication Required" or stronger and to prevent the initial connection failure. Any suggestions on the cause of this or what might be done to fix it?
Thanks
|
|
|
|
|
how to retrieve the last 4 or 5 records from a database table, i want to retrive the latest recirds which are entered not all or old records
|
|
|
|
|
If you have some way of determining the time (or sequence) the rows were inserted in the table (e.g. a date stamp column, of an incremental sequence number or id) then this is quite easy.
SELECT TOP 5 * FROM MyTable ORDER BY TimeStamp DESC
Upcoming events:
* Glasgow: Mock Objects, SQL Server CLR Integration, Reporting Services, db4o, Dependency Injection with Spring ...
"I wouldn't say boo to a goose. I'm not a coward, I just realise that it would be largely pointless."
My website
|
|
|
|
|
hi,
is there any query to check whether a database exits or not ?
thank ..
|
|
|
|
|
|
I think based on some of his other questions in the past, he might be doing homework. Why bother doing your own work?
_____________________________________________
Flea Market! It's just like...it's just like...A MINI-MALL!
|
|
|
|
|
uh huh.
Unless someone seems to have done a decent amount of investigation and research and is stuck on a specific problem I'll always put in the same amount of effort they've put into asking the question and just post a google link.
|
|
|
|
|
Any specific guidelines when we should go for return/output wrt SQL Server stored procedures.
If i have only one output to return?
Thanks,
Amit
|
|
|
|
|
Does your app need to work with the returned value?
"Any sort of work in VB6 is bound to provide several WTF moments." - Christian Graus
|
|
|
|
|
|
Ummm, does your app do anything with the returned value? E.g. report the row count, put the returned values in a datagrid, etc?
"Any sort of work in VB6 is bound to provide several WTF moments." - Christian Graus
|
|
|
|