[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 689
  • Last Modified:

I can't execute an SQL query cause of the column name contains spaces, db paradox table

I can't execute a simple query cause of the freaking column name contains one 'space' character..
It's a dbBase paradox..

I can't rename the column name cause it's being used by another program(delphi i assume) which needs the format "Column Name " and not "Column_Name", else it crashes...

I've tried all of the above ending with error messages.

At all the other columns i can query everything BUT this one with the space is the most importan to me..

--------------------------
*Also i was thinking if i could just query without the Column_Name BUT with let's say the Column_Number(Number order from left to right,Duh :p, the stupid column is the 12th)
But dunno if that's possible.

Link For the db example file "h@@p://rapidshare.com/files/230795199/CYBER6.db"

Anyway
Thanks for reading...
This is my query, as u can see i've tried everything...Or Dunno
----------------------------------------------------------
Update cyber6.db
set Rem Time='00:00:00' where MEMBERID=3
----------------------------------------------------------
Update cyber6.db
set [Rem Time]='00:00:00' where MEMBERID=3
-------------------------------------------------------------
Update cyber6.db
set `Rem Time`='00:00:00' where MEMBERID=3
------------------------------------------------------------
Update cyber6.db
set Rem%20Time='00:00:00' where MEMBERID=3
--------------------------------------------------------------
Update cyber6.db
set "Rem Time"='00:00:00' where MEMBERID=3
-----------------------------------------------------------------
Update cyber6.db
set @"Rem Time"='00:00:00' where MEMBERID=3
--------------------------------------------------------------
Update cyber6.db
set "Stupid@Rem@@@@Time"='00:00:00' where MEMBERID=3  <------- I'm kidding

Open in new window

asdasdasd.JPG
0
Freeboss
Asked:
Freeboss
  • 3
  • 2
  • 2
  • +1
1 Solution
 
JackOfPHCommented:
Enclose the namen of the column with square bracket...

example:

Update cyber6.db
set `[Rem Time]`='00:00:00' where MEMBERID=3
0
 
JackOfPHCommented:
oopss... Sorry didn't see the code...
0
 
rfwoolfCommented:
You don't say what database engine you're using (you say you're using a paradox database, but, are you connecting through the BDE or not?)
Try preceeding the column name with a table name, e.g.
Set MyTable."Rem Time" =
Here's the explanation from the BDE's Local SQL Help:
COLUMN NAMES
ANSI-standard SQL confines each column name to a single word comprised of alphanumeric characters and the underscore symbol, "_". Local SQL, however, is enhanced to support the Paradox and dBASE feature of non-alpha characters and spaces embedded in column names. Local SQL supports Paradox multi-word column names and column names that duplicate SQL keywords as long as those column names are
 
-Enclosed in single or double quotation marks
-Prefaced with an SQL table name or table correlation name
 
For example, the following column name consists of two words:
 
SELECT E."Emp Id"
 
FROM Employee E

Open in new window

0
 [eBook] Windows Nano Server

Download this FREE eBook and learn all you need to get started with Windows Nano Server, including deployment options, remote management
and troubleshooting tips and tricks

 
senadCommented:
"I can't rename the column name cause it's being used by another program(delphi i assume) which needs the format "Column Name " and not "Column_Name", else it crashes"

You can open your table with database desktop which is Delphi independent.
So I do not see the problem of renaming the column.
0
 
rfwoolfCommented:
Yes you should be able to change the column names, but with paradox (and a very buggy Database Desktop) you could often have locked tables that would prevent you from opening Database Desktop. Sometimes you would have to go and delete all .NET and .LCK files - you can find them in a few places, such as:
-In the Database Desktop directory and subdirectories, usually located at C:\Program Files\Common Files\Borland Shared\Database Desktop (and check subfolders)
-The directory of your delphi project / program
-C:\ (the root of your hard drive).
-The "Working Directory" of Database Desktop which you set inside Database Desktop - which is usually a folder inside your Database Desktop directory, but, you could actually set it to any directory.

Also close any open datasets in your Delphi IDE, or better yet close everything in Delphi, and in some cases you have to close Delphi.
This is why so many people just reboot.
0
 
FreebossAuthor Commented:
Hm......
I just woke up, I'll take a coffe and then post again but at first site I think i didn't give u the general idea about the connection between the *.db file and the delphi program..

The Db is accessed by a Net cafe program which at the column name "Rem Time" adds. or removes some prepaid time from a member..

The thing isn't that i can't Change the column name, Cause Of an error message sasying "is being used by another program" etc. etc.(I'm not that of a noob)

It's That IF I DO, When i open the program and let's say i want to add 5 hours to a member the program crashes cause it's supposed for it to read the //Remaining Time\\ Of a coustomer from the "Rem Time" column and not the "RemTime" or anything else..

Sorry for the missunderstanding.
*I don't have the source btw:(
--------------------------------------------------
Mr rfwoolf I'm connecting through BDE..
---------------------------------------------------
I really need a coffe, I try sth u said at your 1st post and repost l8.....

Thanks
0
 
FreebossAuthor Commented:
I found it and all goes thanks to "rfwoolf"
That's the difference of a MASTER...

I'm gratefull, thank u very much man..
Working Code
------------------
Update cyber6.db
set Cyber6.db."REM TIME"='00:00:00' where Cyber6.db.MEMBERID=3
-------------------

Open in new window

0
 
FreebossAuthor Commented:
You really are a master, Grats !!!
0

Featured Post

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

  • 3
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now