PDA

View Full Version : پیدا کردن Number Record



yanin_taheri
چهارشنبه 20 اسفند 1393, 15:21 عصر
با سلام خدمت همه ی دلفی دوستان من به یه مشکل برخوردم ممنون میشم اگه راهنماییم کنید
من تو فیلد در دیتابیس به این صورت دارم http://i.cubeupload.com/XM1Vge.png
من میخوام در فیلد نتیجه رکورد هایی که فقط از اعداد در اونها استفاده شده رو فیلتر کنم

Mahmood_M
چهارشنبه 20 اسفند 1393, 16:51 عصر
می تونید از تابع IsNumeric در SQL استفاده کنید ، مثال ( فرض می کنیم نام فیلد نتیجه Result باشه ) :
SELECT * FROM MyTable WHERE ISNUMERIC(Result) = 1
تابع ISNUMERIC برررسی می کنه که مقدار داخلش عدد هست یا نه ، اگر از نوع عددی بود ، مقدار 1 برمی گردونه
این تابع چون نوع های Money و Float و ... رو هم به عنوان عدد می شناسه ، برای یک سری کارکتر های دیگه هم مقدار یک برمی گردونه ، مثل "." یا "$" یا ... ، اگر از SQL Server 2012 استفاده می کنید تابع دیگه ای هست به نام Try_Parse که مقدار ورودی رو با نوعی که خودتون مشخص میکنید می سنجه ، مثال :
SELECT * FROM MyTable WHERE TRY_PARSE(Result, int) = 1
دستور بالا فقط مقادیر Integer رو نشون میده

موفق باشید

yanin_taheri
چهارشنبه 20 اسفند 1393, 17:57 عصر
من در این قسمت از بانک SQLite استفاده میکنم ولی زمانی که از دستور شما در Query استفاده میکنم Error میده
نمیدونم دلیلیش چیه
Error : SQL Logic Error
من از TZquery کامپننت ZeosLib استفاده میکنم

Mahmood_M
چهارشنبه 20 اسفند 1393, 22:15 عصر
اگر امکانش هست کل دستوری که نوشتید رو قرار بدید

yanin_taheri
جمعه 22 اسفند 1393, 18:08 عصر
ZQuery1.close ;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add('SELECT * FROM Table ');
ZQuery1.SQL.Add('WHERE ISNUMERIC(Result) = 1') ;
ZQuery1.open ;

ولی با خطا Logic Error روبرو میشم

Mahmood_M
شنبه 23 اسفند 1393, 11:31 صبح
باید نام Table و نام فیلد نتیجه رو همونی که تو بانک ایجاد کردید قرار بدید
نام جدول و نام فیلد نتیجه رو توی بانک اطلاعاتی چی گذاشتید ؟