ورود

View Full Version : مشکل این Query چیه ؟



delphi5
سه شنبه 13 آذر 1386, 14:51 عصر
with ADOQuery1 do begin
Close;
sql.clear;
sql.add('SELECT no,peiro,head,tx1,tx2,tx3,tx4,tx5,tx6 FROM db_msg');
sql.add('where to='+QuotedStr(form1.edit7.text)+' ');
sql.add('ORDER BY no ');
Open;
end;

Cave_Man
سه شنبه 13 آذر 1386, 15:04 عصر
with ADOQuery1 do begin
Close;
sql.clear;
sql.add('SELECT [no],peiro,[head],tx1,tx2,tx3,tx4,tx5,tx6 FROM db_msg');
sql.add('where [to]='+QuotedStr(form1.edit7.text)+' ');
sql.add('ORDER BY [no] ');
Open;
end;

کروشه ها تغییری بود که من دادم

delphi5
سه شنبه 13 آذر 1386, 15:06 عصر
مشکل رو متوجه شدم .
توی خط دوم sql کلمه to جزو کلمات رزرو شده است .

Cave_Man
سه شنبه 13 آذر 1386, 15:14 عصر
مشکل رو متوجه شدم .
توی خط دوم sql کلمه to جزو کلمات رزرو شده است .
درسته برای کلاماتی که فکر میکنید جزو کلمات رزروی هستن از کروشه استفاده میشه

dkhatibi
سه شنبه 13 آذر 1386, 19:22 عصر
البته همه شون؟
من کلمه ی Date را به عنوان نام فیلد استفاده می کنم اما مشکلی نیست

Cave_Man
سه شنبه 13 آذر 1386, 20:04 عصر
البته همه شون؟
من کلمه ی Date را به عنوان نام فیلد استفاده می کنم اما مشکلی نیست
من در SQL server با فیلد date مشکل دارم و باید با کروشه مشخصش کنم
احتمالا از Access استفاده میکنی

SYNDROME
سه شنبه 13 آذر 1386, 21:41 عصر
من در SQL server با فیلد date مشکل دارم و باید با کروشه مشخصش کنم
احتمالا از Access استفاده میکنی
دوست عزیز بنده با SQL کار می کنم و مشکل فوق را هم ندارم.
موفق باشید

Cave_Man
سه شنبه 13 آذر 1386, 22:06 عصر
البته همه شون؟
من کلمه ی Date را به عنوان نام فیلد استفاده می کنم اما مشکلی نیست
Date در SQL server 2000 جزو کلمات رزروی نیست
اگه شما از Access استفاده کنید حتما با این مشکل مواجه میشید اگر از ODBC استفاده کنید توضیح اینکه من از ODBC استفاده میکنم

Cave_Man
سه شنبه 13 آذر 1386, 22:07 عصر
دوست عزیز بنده با SQL کار می کنم و مشکل فوق را هم ندارم.
موفق باشید
احتمالا شما از ADO برای ارتباط با SQL server 2000 استفاده میکنید

Cave_Man
سه شنبه 13 آذر 1386, 22:08 عصر
کلمات مهم در زبان انگلیسی بسیار در کدهای SQL خطر ناک هستند و باید با احتیاط اونها رو به عنوان object در SQL server انتخاب کرد مثلا من خیلی کم از دو اسم date , time در دیتابیسم استفاده میکنم چون اگر الان هم جزو کلمات کلیدی نباشند ممکنه در آینده در نسخه های بعدی SQL serve rیا بانک های دیگه به عنوان کلمه کلیدی به کار گرفته بشن
بهتره برای اجتناب از این جور خطاها بهتره مثل یه برنامه نویس حرفه ای کد بنویسید
البته منظورم این نبود که من حرفه ای هستم:لبخند:

Cave_Man
سه شنبه 13 آذر 1386, 22:20 عصر
احتمالا از Access استفاده میکنی
در Access هم جزو کلمات کلیدی هست البته ورژن 2002
نتیجه اینکه هیچ جا نباید استفاده کرد

dkhatibi
سه شنبه 13 آذر 1386, 22:42 عصر
البته خود sqlServer2000 دور فیلد کروشه می گذاره! این یعنی براش رزرو شده است نیست؟

Cave_Man
سه شنبه 13 آذر 1386, 22:51 عصر
البته خود sqlServer2000 دور فیلد کروشه می گذاره! این یعنی براش رزرو شده است نیست؟
به نظر من به همون دلیل که ممکنه در آینده این کلمه به عنوان رزروی انتخاب بشه یا اینکه در ODBC جزو کلمات رزروی هست میتونه دلیل کروشه بندیش باشه