ورود

نسخه کامل مشاهده نسخه کامل : آموزش و سوالات مربوط به استفاده از دستورات Sql در دلفی



صفحه ها : 1 [2]

مرد مباح
10-12-2008, 20:37
سلام دوست عزيز و قديمي.
من از يك مجموعه ديتابيس دارم استفاده ميكنم كه در دوجاي مختلف پر ميشه و روز 1 بار قراره اطلاعاتشون رو تبادل كنند.
براي تيكه اول اين كار به اين نتيجه ريسدم كه خيلي راحت ميشه از Select Into استفاده كرد. ولي در تيكه دوم (بازخواني اطلاعات) نميدونم چه كاري بهتره.
چون نمخوام كه اطلاعات 2باره توي ديتابيس اضافه بشه و يا اينكه يك سري اطلاعات پاك شه.

براي فهم بهتر موضوع يك مثال ميزنم :
پايگاه 1 اطلاعاتي از قبل 20 ركورد داشته كه تا اينجا پا پايگاه 2 يكسانه.
پايگاه 1 در يكي از تيبلهاش 4 تا ركورد اضافه ميكنه.
در همين زمان هم پايگاه 2 در همون تيبل 3 ركورد ايجاد ميكنه.
من اطلاعات رو به صورت كامل از پايگاه 1 توي يك فايل كمكي ميزيم.
ميخوام كاري كنم كه بعد از فراخوان اطلاعات در پايگاه 2 مجموعا 27 ركورد داشته باشه.‌(3تاي جديد خودش و 4تا جديد پايگاه 1 اضافه بشن.)

از چه فرماني و با چه Structureي بايد استفاده كنم ؟؟





راستي بخش اول كارم هم امتحان كردم و به مشكل خوردم.

1. ميگه فايل حتما بايد موجود باشه. (الان خيلي برام حياتي نيست ولي ميشه فايلو ايجاد كرد؟)
2. با وجود فايل بدون پسورد اكسس باز هم Error ميده : Query input must contain at least one table or query
در صورتي كه حدود 10- 12 تا تيبل توي فايل اصليم هست.

فرمانيم كه نوشتم به صورت زيره :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Payman_62
10-12-2008, 23:41
سلام.
این تاپیک به لیست تاپیک های مهم اضافه شد.

مرد مباح
11-12-2008, 11:38
فرهاد جان، تونستم مشكل دومي رو با تيكه تيكه كردن Command حل كنم.
ولي هنوز دوتا مشكل :

1.مورد 1 مشكل بالا رو هنوز راهي براش نميدونم.
2. چطور ميشه فايل رو بسازه ؟

F A R H A D
12-12-2008, 14:47
سلام
بابت تاخیرم عذر میخوام، این روزها کمتر میام
چرا از دو دیتابیس استفاده میکنی. اگر امکان شبکه وجود داره از یک دیتابیس استفاده کن و با کمک ClientDataSet و حالت BriefCase خیلی راحت مشکلتو حل کن
در غیر این صورت یک فیلد bit به جدولهات اضافه کن و در صورتی که تغییری ایجاد شد مقدارشو 1 بذار و هنگام بروزرسانی فقط رکوردهای جدید و تغییر یافته رو جایگزین کن
منظورتو از فایل متوجه نشدم
ضمنا لطفا اگر با دستورات sql مشکلی نداری در تاپیک جدید مطرح کن. تشکر

مرد مباح
12-12-2008, 15:05
1. فرهاد جان مسئله اينجاست كه اسن دو مركزي كه بهت گفتم حدود 100 كيلومتر با هم فاصله دارن و در يكي از اونا هم امكان ADSL نبود كه برنامه تحت وب ساخته بشه.
2.يك راهي خودم پيدا كردم و تا يكجاييش تونستم فرمان SQL رو يسازم.
ولي بازم روش مشكل دارم.

مسئله اينه كه ديتا بايد هم چك بشه و هم كپي.
3 تا تيبل دارم كه ...
1. مشخصات يوزر توشه.
2. ثيبل مسيجهاي قديمي
3. تيبل مسيجهايي كه جديد ها هم توش هست.

چون يوزهاي دو بخش باهم فرق دارن ، ميخوام اول چك كنم كه چه مسيجهايي مربوط به يوزرهاي واحد 2 هست و بعد از اون مسيجهايي كه قبلا وجود داشته رو در نظر نگيره و جديدارو به تهش اضافه كنه.
من فرمان زير رو امتحان كردم كه درست كار نميكنه.
ميگي مشكلش كجاست ؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

messages تيبل مسيجهاي قديميه
users تيبل اطلاعات يوزرهاي واحد 1
temp1 كل مسيجهاي موجود كه اطلاعاتش از واحد 2 اومده

F A R H A D
12-12-2008, 23:33
پیغام خطا میده یا نتیجه مورد نظرتو نمیگیری؟
اگر فقط نتیجه مورد نظر رو نمیگیری از هر دو دیتابیس برام backup بگیر و آپ کن

مرد مباح
13-12-2008, 00:17
نتيجم غلطه. چون انگار اصلا شرط آخر رو در نظر نميگيره.
من فايل رو گذاشتم. ولي روند كاريمم ميگم كه اگه به درد خورد راهنماييم كني.

فايل 1 فايل اصلي روي واحد 1 هست.
فايل 2 فايليه كه از واحد 2 اومده ولي كل فايل نيست و فقط ثيبل مورد نيازش (Message) از اونجا اومده.
من خودم با فرمان select into اول تيبل رو با نام Temp توي فايل اصلي ديتابيسم كپي ميكنم و بعد هم روند بالا.

مسئله اينه كه از مجموع 5 ركوردي كه توي فايل 2 هست بايد دو ركورد به انتهاي فايل 1 تيبل مسيج اضافه بشه.
چون يوزر Ali اصلا توي بخش يوزرها معرفي نشده. دو مسيج اول هم كه تكراري هست و نيازي به كپيش نيست.

اگه بازم موردي بود خبرم كن تا توضيح بدم.

اينم لينك دانلود فايلها :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

F A R H A D
13-12-2008, 16:51
چک میکنم خبر میدم...

F A R H A D
13-12-2008, 21:10
آقا من که واقعا از این جدولها سر در نیاوردم اما برای رسیدن به خواسته ای که داری بهترین کار اینه که قبلا هم گفتم:

در غیر این صورت یک فیلد bit به جدولهات اضافه کن و در صورتی که تغییری ایجاد شد مقدارشو 1 بذار و هنگام بروزرسانی فقط رکوردهای جدید و تغییر یافته رو جایگزین کن
این کاری رو که گفتم برای جدول messages واحد 2 انجام بده.
اگر مشکلی بود در خدمتم

F A R H A D
14-12-2008, 22:01
سلام دوباره
آقا پیرو صحبتی که داشتیم و جدولهای فرضی که تشکیل شد از کد زیر استفاده کن:
با کد زیر یه کوئری درست کن و با نام query1 ذخیره کن:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بعد اینو هم داخل برنامه استفاده کن:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در خدمتم

izeh_ninja
04-02-2009, 20:36
ببخشيد(اگه تكراري چون جستجو نكردم)

سوال من اينه
من ميخوام بدونم چه طور ميشه توي sql server روي يك ديتابيس(يا يك تيبل) پسورد قرار داد(مثل تو اكسس و ...)

F A R H A D
05-02-2009, 12:26
ببخشيد(اگه تكراري چون جستجو نكردم)

سوال من اينه
من ميخوام بدونم چه طور ميشه توي sql server روي يك ديتابيس(يا يك تيبل) پسورد قرار داد(مثل تو اكسس و ...)
sql server برای تشخیص و تایید هویت کاربران از دو مدل تشخیص هویت (َAuthentication) ویندوز و sql server (لاگین های sqlServer) استفاده میکنه که شما میتونید امنیت دیتابیس و جداول رو از این طریق تامین کنید.
در هر کدام از این دو حالت فقط کاربران مجازی که شما تعریف کردید میتونند به اطلاعات دسترسی داشته باشند.

izeh_ninja
05-02-2009, 19:01
sql server برای تشخیص و تایید هویت کاربران از دو مدل تشخیص هویت (َAuthentication) ویندوز و sql server (لاگین های sqlServer) استفاده میکنه که شما میتونید امنیت دیتابیس و جداول رو از این طریق تامین کنید.
در هر کدام از این دو حالت فقط کاربران مجازی که شما تعریف کردید میتونند به اطلاعات دسترسی داشته باشند.

لطفاً اگه ميشه بگيد ازكدوم قسمت بايد رو ديتابيسم پسورد بزارم(امنيتش تامين كنم)

آيا اگه پسورد گذاشتم(يا يه يوزر خاص معرفي كردم) و تو يه سيستم ديگه با يه يوزر ديگه(يوزر براي sql)آيا مي تونم اطلاعات رو مشاهده كنم

kamran_fa
05-02-2009, 23:21
دوستان سلام من 2 تا Table دارم از ADODataSet برای وصل شدن استفاده کردم
ADODataSet1.CommandText:=
'select * from table1 '

ADODataSet2.CommandText:=
'select * from table2 inner join tble1 on table1.name= table2.name'

از Master/Detail هم استفاده کردم
ADODataSet1.MasterFields:=name;name
مشکل اینجاست که اگه یک رکورد از Table2 را delete کنم رکورد table 1 هم delete میشه
ممنون میشم کسی کمک کنه

hawk_eye
05-02-2009, 23:29
با سلام.من می خوام وقتی یه رکورد از dbcombobox رو انتخاب می کنم اطلاعات بقیه فیلد های همون جدول داخل dbeditها نمایش داده بشه.ممنون میشم کمکم کنید

F A R H A D
06-02-2009, 00:19
لطفاً اگه ميشه بگيد ازكدوم قسمت بايد رو ديتابيسم پسورد بزارم(امنيتش تامين كنم)

آيا اگه پسورد گذاشتم(يا يه يوزر خاص معرفي كردم) و تو يه سيستم ديگه با يه يوزر ديگه(يوزر براي sql)آيا مي تونم اطلاعات رو مشاهده كنم

مطالبی که عرض کردم به این معنی بود که در sql server چیزی به عنوان پسورد گذاشتن روی دیتابیس وجود نداره. شما زمانی که یک سرور جدید رو ثبت میکنید (sql server registration) در دومین مرحله نحوه تشخیص هویت رو معین میکنید (authentication mode) که میتونه مواردی باشه که در پست قبلی هم گفتم
در مورد سوال دوم هم فقط کاربران مجاز، اجازه دسترسی به داده ها رو دارند، و تفاوتی نداره که از کدام سیستم باشه
موفق باشید

F A R H A D
06-02-2009, 00:57
دوستان سلام من 2 تا Table دارم از ADODataSet برای وصل شدن استفاده کردم
ADODataSet1.CommandText:=
'select * from table1 '

ADODataSet2.CommandText:=
'select * from table2 inner join tble1 on table1.name= table2.name'

از Master/Detail هم استفاده کردم
ADODataSet1.MasterFields:=name;name
مشکل اینجاست که اگه یک رکورد از Table2 را delete کنم رکورد table 1 هم delete میشه
ممنون میشم کسی کمک کنه
سلام
خوش آمدید
مطمئنید که به صورت فیزیکی هم در بانک delete میشه؟

kamran_fa
06-02-2009, 01:59
آره کلا حذف میشه

F A R H A D
06-02-2009, 02:41
پس احتمالا در دیتابیس از دیاگرام و یا relationShip استفاده کردید. اگر جواب منفی هست، همین قسمت مشکل دار برنامه رو آپ کنید تا من یا دوستان بررسی کنیم. ضمنا در صفحه اول عرض کردم که مواردی که مربوط به T-sql هست رو در اینجا مطرح کنید. لطف کنید تاپیک جدید ایجاد کنید تا نظم اینجا هم حفظ بشه
موفق باشید

aa241355
06-02-2009, 11:20
با سلام من موقع ایجاد سرور با خطاهای11004و 6مواجه میشم لطفا راهنمایی کنید

aa241355
06-02-2009, 11:22
Microsoft SQL Server Login

Connection faile:
SQLState :01000 '

SQL Server Error:11004
Microsoft][ODBC SQL Server Driver ][TCP IP Sockets]ConnectionOpen (Connect ()).
Connection faile:
SQLState :08001 '
SQL Server Error:6
Microsoft][ODBC SQL Server Driver ][TCP IP Sockets]Specified SQL server not found.



OK

F A R H A D
06-02-2009, 11:37
با سلام من موقع ایجاد سرور با خطاهای11004و 6مواجه میشم لطفا راهنمایی کنید


Microsoft SQL Server Login

Connection faile:
SQLState :01000 '

SQL Server Error:11004
Microsoft][ODBC SQL Server Driver ][TCP IP Sockets]ConnectionOpen (Connect ()).
Connection faile:
SQLState :08001 '
SQL Server Error:6
Microsoft][ODBC SQL Server Driver ][TCP IP Sockets]Specified SQL server not found.



OK


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

جای این سوالات اینجا نیست.......

izeh_ninja
06-02-2009, 17:58
سلام
من يه مشكل و دو سه تا سوال دارم
مشكل:
من دستور زير مي نويسم اما روي كلمه ي in ارور ميگيره

SELECT * INTO table_backup IN backup.mdb FROM tableسوال
1:چه جور مي شه يه ديتابيس كلاً حذف كرد(delete) يعني كوري ها و ويو ها و ...هم حذف بشن و اثري از ديتا بيس نباشه

2.من يه بانك اطلاعاتي دارم كه با دستور ازش بك آپ مي گيريم حالا سوال من اينه كه چه جوري بدون حذف بانك اصلي، اطلاعات
بك آپ رو روش بريزم و جايگزين اطلاعات جاري بشن

3.آيا با دستور into مي تونم اطلاعات ازيه بانك(sql) به يه بانك ديكه(مثلاً اكسس) بريزم يعني نسبت به نوع ديتابيس ها حساسيت و ارور نداره .
متشكرم

F A R H A D
07-02-2009, 01:05
سلام
من يه مشكل و دو سه تا سوال دارم
مشكل:
من دستور زير مي نويسم اما روي كلمه ي in ارور ميگيره

دستور مشکلی نداره. پیغام خطا رو بنویسید


سوال
1:چه جور مي شه يه ديتابيس كلاً حذف كرد(delete) يعني كوري ها و ويو ها و ...هم حذف بشن و اثري از ديتا بيس نباشه


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


2.من يه بانك اطلاعاتي دارم كه با دستور ازش بك آپ مي گيريم حالا سوال من اينه كه چه جوري بدون حذف بانك اصلي، اطلاعات
بك آپ رو روش بريزم و جايگزين اطلاعات جاري بشن
اگر منظور از backup گرفتن دستور select into هست، اصولی نیست. من در آموزش این دستور کاربرد بک آپ رو فقط جهت درک مطلب گفتم. شما میتونید از دستورات backup و restore استفاده کنید



3.آيا با دستور into مي تونم اطلاعات ازيه بانك(sql) به يه بانك ديكه(مثلاً اكسس) بريزم يعني نسبت به نوع ديتابيس ها حساسيت و ارور نداره .
از sql server به access فکر نمیکنم مشکلی داشته باشه اما برعکسش قضیه کمی فرق میکنه.

izeh_ninja
07-02-2009, 11:40
SELECT * INTO table_backup IN backup.mdb FROM table

ارور دقيقآ يادم نيست(چون تو كافي نت هستم-خونه نيستم) فكر كنم اين باشه
syntex neyer 'in


*************************
اگر منظور از backup گرفتن دستور select into هست، اصولی نیست. من در آموزش این دستور کاربرد بک آپ رو فقط جهت درک مطلب گفتم. شما میتونید از دستورات backup و restore استفاده کنی
**********************
نه
من bacup , restor با دستورات sqlبلدم فقط مشكل اينه كه وقتي بانك تو sqlاست نمي تونم بك آپ بريزم و ارور مي ده كه ديتا بيس وجود داره حالا من مي خوام بدونم چه جوري مي شه بدون اينكه بانك اصلي رو حذف كنم اطلاعات بك آپ ببينم يا رو ي ديتابيس اصلي بريزم

ممنون از اينكه جواب سوالام ميدي

F A R H A D
07-02-2009, 14:07
من bacup , restor با دستورات sqlبلدم فقط مشكل اينه كه وقتي بانك تو sqlاست نمي تونم بك آپ بريزم و ارور مي ده كه ديتا بيس وجود داره حالا من مي خوام بدونم چه جوري مي شه بدون اينكه بانك اصلي رو حذف كنم اطلاعات بك آپ ببينم يا رو ي ديتابيس اصلي بريزم
ADOConnection به کدام دیتابیس مرتبط هست؟

izeh_ninja
07-02-2009, 17:24
تو ديتا مازول يكي دارم كه به ديتاي اصلي وصله و يكي دارم كه به هيچ ديتايي وصل نيست براي ريستور و بك آپ( به درايور sql وصله اما بدون انتخاب نام ديتابيس)

هنگام ريستور كردن اون كانكشني كه به ديتاي اصلي وصله رو كانكشنشو قطع مي كنم .

اروري كه ميده اينه كه درحال حاضر ديتابيسي با همون نام وجود داره
يه راه حلي كه به ذهنم رسيد اين بود كه ديتابيس كلاً حذف كنم و بعد عمليات ريستور انجام بدم ولي وقتي مي خوام ديتابيس حذف كنم ارور ميده كه ديتابيس در حال استفاده است ولي من تموم اتصالات و قطع مي كنم باز هم همون ارور مي ده.

لطفاً اگه راه حل برام دارين بنويسيد.

لطفاً ياري كنيد يه برنامه نوشتم كه گير همين تيكيه.

izeh_ninja
07-02-2009, 17:40
ببخشيد بهتره كه سوالم اينطوري بگم
شما وقتي يه برنامه با sql server و دلفي مي نويسيد مطمئناً براش پشتيباني اطلاعات هم ميزاريد(بك آپ -ريستور) حالا فرض كنيد

كه يه بك آپ از ديتا مون گرفتيم و مي خواهيم با برنامه اونو ريستور كنيم
خب!
همون جور كه اطلاع داريد نميشه دو تا ديتا بيس با يه نام تو sql server داشت ! وقتي كه ريستور مي كنم بر اساس اطلاعاتي كه در بك آپ وجود داره برنامه سعي ميكنه كه ديتا روبه جاي همون ديتابيس اصلي بريزه و وقتي مي بينه كه يه ديتا با همون نام وجود داره

عمليات رو بلوكه ميكنه و ارور ميده ارورش هم همونيي كه گفتم

ديتابيس با اين نام وجود دارد
البته معنيش

F A R H A D
07-02-2009, 18:35
تو ديتا مازول يكي دارم كه به ديتاي اصلي وصله و يكي دارم كه به هيچ ديتايي وصل نيست براي ريستور و بك آپ( به درايور sql وصله اما بدون انتخاب نام ديتابيس)

هنگام ريستور كردن اون كانكشني كه به ديتاي اصلي وصله رو كانكشنشو قطع مي كنم .

اروري كه ميده اينه كه درحال حاضر ديتابيسي با همون نام وجود داره
يه راه حلي كه به ذهنم رسيد اين بود كه ديتابيس كلاً حذف كنم و بعد عمليات ريستور انجام بدم ولي وقتي مي خوام ديتابيس حذف كنم ارور ميده كه ديتابيس در حال استفاده است ولي من تموم اتصالات و قطع مي كنم باز هم همون ارور مي ده.

لطفاً اگه راه حل برام دارين بنويسيد.

لطفاً ياري كنيد يه برنامه نوشتم كه گير همين تيكيه.


ببخشيد بهتره كه سوالم اينطوري بگم
شما وقتي يه برنامه با sql server و دلفي مي نويسيد مطمئناً براش پشتيباني اطلاعات هم ميزاريد(بك آپ -ريستور) حالا فرض كنيد

كه يه بك آپ از ديتا مون گرفتيم و مي خواهيم با برنامه اونو ريستور كنيم
خب!
همون جور كه اطلاع داريد نميشه دو تا ديتا بيس با يه نام تو sql server داشت ! وقتي كه ريستور مي كنم بر اساس اطلاعاتي كه در بك آپ وجود داره برنامه سعي ميكنه كه ديتا روبه جاي همون ديتابيس اصلي بريزه و وقتي مي بينه كه يه ديتا با همون نام وجود داره

عمليات رو بلوكه ميكنه و ارور ميده ارورش هم همونيي كه گفتم

البته معنيش

تمام ارتباطها با دیتابیس مورد نظر رو قطع کنید. connection رو به دیتابیس master متصل کنید و ادامه ماجرا

izeh_ninja
07-02-2009, 21:34
تمام ارتباطها با دیتابیس مورد نظر رو قطع کنید. Connection رو به دیتابیس master متصل کنید و ادامه ماجرامر30 برررسي مي كنم نتيجه رو هم حتماً ميگم
:40::40::40::40::40::40::40::40::40::40::40::40::4 0::40::40::40::40::40::40::40::40::40::40::40::40: :40:


:31:اگه ميشه يه نمونه كوچيك از دستور into آپلود كنيد (اگه نميشه هم كه هيچي) اگه ميشه از اسكيول intoاكسس بذاريد:31:

F A R H A D
07-02-2009, 23:17
مر30 برررسي مي كنم نتيجه رو هم حتماً ميگم
:40::40::40::40::40::40::40::40::40::40::40::40::4 0::40::40::40::40::40::40::40::40::40::40::40::40: :40:


:31:اگه ميشه يه نمونه كوچيك از دستور into آپلود كنيد (اگه نميشه هم كه هيچي) اگه ميشه از اسكيول intoاكسس بذاريد:31:

انشاالله که جواب میده
into رو قبلا گذاشتم

Payman_62
08-02-2009, 01:12
سلام.
دوستان عزیز این تاپیک یه تاپیک آموزشی در مورد sql هست. لطف کنید از مطرح کردن سوالات متفرقه خودداری کنید و سوالات خود را فقط در مورد T-SQL در این تاپیک مطرح کنید.

izeh_ninja
08-02-2009, 13:49
سلام.
دوستان عزیز لطفا سوالات خود در هر موردی رو در این تاپیک مطرح نکنید. در این تاپیک فقط آقا فرهاد آموزش و سورس قرار میدن. کلیه سوالاتی که در این تاپیک مطرح بشن و شدن پاک خواهند شد.

درسته منم سوالم همش مربوط به همين تاپيكه
آقا فرهاد ممنون ولي باز هم همون ارور ميده فكر كنم sql مثل اكسس در هنگام استفاده از ديتابيس يه فايل ميسازه
برا همينه كه ارور ميده

فاطـمه
12-02-2009, 12:35
سلام
من یه برنامه نوشتم که بانکش sql هست و چند تا از فیلدها رو Auto number تعریف کردم تا خودش اونا رو به ترتیب شماره گذاری کنه
مشکلم اینجاس که موقع کد نویسی وقتی میخوام یه سطر جدید اضافه کنم دوباره برنامه می خواد اون فیلد رو مقدار بده باید چکار کنم تا دلفی بفهمه که این فیلد auto number هست؟!
اگه راهنمایی کنید ممنون میشم

F A R H A D
12-02-2009, 21:09
سلام.
دوستان عزیز این تاپیک یه تاپیک آموزشی در مورد sql هست. لطف کنید از مطرح کردن سوالات متفرقه خودداری کنید و سوالات خود را فقط در مورد T-SQL در این تاپیک مطرح کنید.
ممنون پیمان جان. واقعا به این پست از طرف شما نیاز بود
دوستان عزیز هم لطف کنند فقط مواردی رو که مربوط به دستورات زبان T-SQL هست در اینجا مطرح کنند.
این تاپیک هیچ ارتباطی با مشکلات کار با نرم افزار مدیریت پایگاه داده sql server ندارد
تشکر از همکاری شما

aa241355
13-02-2009, 01:24
باسلام گرم خدمت همه دوستان وتشکر از این تاپیک واقعا مفید وارزشمندآیا میشه برنامه ای در دلفی نوشت که به چند جدول در یه دیتابیس دسترسی داشته باشیم وبتونیم عمل درج ،کپی،حذف وجستجو را داشته باشه یا با چند تا سربرگ از یه فرم یا با لینک از یه فرم به فرم دیگه (هدف من نوشتن یه برنامه برا یه کتابخونه هست و چند جدول در این پایکاه داده هست جدول کتاب ، جدول گیرنده کتاب ، جدول اعضای کتابخانه و جدول کارمندا)

F A R H A D
13-02-2009, 13:41
سلام به شما. این که شدنیه اما چه ارتباطی به اینجا داره؟
لطفا سوالاتتون رو در محل مرتبط با مشکلتون مطرح کنید

aa241355
13-02-2009, 23:32
با تشکر فراوان از حوصله ای که به خرج دادین سوالما اصلاح میکنم آیا میشه برنامه ای در دلفی نوشت که به چند جدول در یه دیتابیسsql دسترسی داشته باشیم وبتونیم عمل درج ،کپی،حذف وجستجوی رکوردها رابدون نیاز به باز کردن sql داشته باشه یا با چند تا سربرگ از یه فرم یا با لینک از یه فرم به فرم دیگه (هدف من نوشتن یه برنامه برا یه کتابخونه هست که چند جدول در این پایکاه داده sql هست جدول کتاب ، جدول گیرنده کتاب ، جدول اعضای کتابخانه و جدول کارمندا) یه فرمشا ساختم که مشخصات کتاب رو از sql فراخونی میکنه و کد search هم که شما زحمتشا کشیده بودین اجرا میکنه

فاطـمه
14-02-2009, 12:12
سلام
با توجه به اینکه اشکال من مرتبط با sql و دلفیه و تو تاپیک جدا هم کسی جواب نداد
اگه اجازه بدین همین جا بپرسم
-------------------
چه جوری میشه چک بودن یک فیلد رو با دستورات sql تو دلفی چک کرد؟!

افسون پری
14-02-2009, 23:35
ممنون اطلاعات خوبی بود فقط در مورد جستجوی چند موردی به زبان sql در دلفی بیشتر بنویسید.

F A R H A D
16-02-2009, 10:22
بابت تاخیرم عذر خواهی میکنم

با تشکر فراوان از حوصله ای که به خرج دادین سوالما اصلاح میکنم آیا میشه برنامه ای در دلفی نوشت که به چند جدول در یه دیتابیسsql دسترسی داشته باشیم وبتونیم عمل درج ،کپی،حذف وجستجوی رکوردها رابدون نیاز به باز کردن sql داشته باشه یا با چند تا سربرگ از یه فرم یا با لینک از یه فرم به فرم دیگه (هدف من نوشتن یه برنامه برا یه کتابخونه هست که چند جدول در این پایکاه داده sql هست جدول کتاب ، جدول گیرنده کتاب ، جدول اعضای کتابخانه و جدول کارمندا) یه فرمشا ساختم که مشخصات کتاب رو از sql فراخونی میکنه و کد search هم که شما زحمتشا کشیده بودین اجرا میکنه
بله دوست من، اینهایی که گفتید شدنی هست (و البته کاملا بی ارتباط با موضوع این تاپیک). منظور شما رو از بدون باز کردن sql متوجه نشدم

F A R H A D
16-02-2009, 10:25
سلام
با توجه به اینکه اشکال من مرتبط با sql و دلفیه و تو تاپیک جدا هم کسی جواب نداد
اگه اجازه بدین همین جا بپرسم
-------------------
چه جوری میشه چک بودن یک فیلد رو با دستورات sql تو دلفی چک کرد؟!

چک بودن فیلد؟
مدتی نبودم و مدتی هم نخواهم بود!. لینک سوالات رو پیغام بذارید اگر اطلاع داشتم حتما جواب میدم
موفق باشید

F A R H A D
16-02-2009, 10:26
ممنون اطلاعات خوبی بود فقط در مورد جستجوی چند موردی به زبان sql در دلفی بیشتر بنویسید.

قبلا نمونه هایی نوشته شده

فاطـمه
17-02-2009, 09:53
چک بودن فیلد؟
مدتی نبودم و مدتی هم نخواهم بود!. لینک سوالات رو پیغام بذارید اگر اطلاع داشتم حتما جواب میدم
موفق باشید
ببخشید اشتباه نوشتم
خالی بودن فیلد رو چک کرد:20:

shbshr
18-02-2009, 11:54
with ADOQuery1 do begin
close;
sql.Clear;
sql.add('select * from inventory where color in ("قرمز","سفيد","آبي","سبز");
open;
end;
eroor می ده invalid column name سبز
باید چیکار کرد؟

فاطـمه
18-02-2009, 15:52
with adoquery1 do begin
close;
sql.clear;
sql.add('select * from inventory where color in ("قرمز","سفيد","آبي","سبز");
open;
end;
eroor می ده invalid column name سبز
باید چیکار کرد؟
این الان کده؟ خطای؟ چیه؟

aa241355
18-02-2009, 21:25
با تشکر فراوان از فرهاد عزیز و بقیه دوستان
نمیدونم این سوالما تو کدوم تاپیک مطرح کنم چون مرتبط تر از همه همین تاپیک بود
منظور من استفاده از فضای گرافیکی بجای کلنجار رفتن با جداول جور واجور sql . البته من تاحدی با sql آشنا هستم اما با دلفی تقزبا هیچ .
ضمنا من تاپیکی پیدا نکردم که این مشکلمو مطرح کنم اگه دوستان کمکک کنند مممنون میشم

F A R H A D
19-02-2009, 19:02
ببخشید اشتباه نوشتم
خالی بودن فیلد رو چک کرد:20:

is null رو قبلا گفتم.

F A R H A D
19-02-2009, 19:06
with ADOQuery1 do begin
close;
sql.Clear;
sql.add('select * from inventory where color in ("قرمز","سفيد","آبي","سبز");
open;
end;
eroor می ده invalid column name سبز
باید چیکار کرد؟

خوش آمدید دوست عزیز.
این دقیقا کدی هست که در آموزشها گذاشتم پس مطمئنا جواب میده، چون تمام کدها تست شده هستند
از کد زیر هم استفاده کنید و نتیجه رو اطلاع بدید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

F A R H A D
19-02-2009, 19:12
با تشکر فراوان از فرهاد عزیز و بقیه دوستان
نمیدونم این سوالما تو کدوم تاپیک مطرح کنم چون مرتبط تر از همه همین تاپیک بود
منظور من استفاده از فضای گرافیکی بجای کلنجار رفتن با جداول جور واجور sql . البته من تاحدی با sql آشنا هستم اما با دلفی تقزبا هیچ .
ضمنا من تاپیکی پیدا نکردم که این مشکلمو مطرح کنم اگه دوستان کمکک کنند مممنون میشم

پس مشکل شما در ارتباط بین دلفی و دیتابیس هست. مطمئنا انجام عملیات درج و حذف و ... با استفاده از نرم افزار مدیریت پایگاه داده (مانند sql server) ماهیت یک نرم افزار رو زیر سوال میبره. شما میتونید 3 تاپیک زیر رو مشاهده کنید، مشکلات زیادی رو براتون حل میکنه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید

aa241355
20-02-2009, 10:27
پس مشکل شما در ارتباط بین دلفی و دیتابیس هست. مطمئنا انجام عملیات درج و حذف و ... با استفاده از نرم افزار مدیریت پایگاه داده (مانند sql server) ماهیت یک نرم افزار رو زیر سوال میبره. شما میتونید 3 تاپیک زیر رو مشاهده کنید، مشکلات زیادی رو براتون حل میکنه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید
سپاس و درود فراوان بر پارسیان نیک پندار نیک گفتار ونیک کردار

engehsan
10-03-2009, 23:26
سلام به همگی میشه به منم یاد بدین یه چیزایی ؟

engehsan
10-03-2009, 23:31
پشتیبان گیریش هم عالی و خوب میشه ازش پول درآورد backup

delphi7
15-03-2009, 00:00
سلام
من چطوری می تونم نتیجه این جستجو رو توی یه جدول دیگه ذخیره کنم ؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

F A R H A D
15-03-2009, 13:47
سلام
من چطوری می تونم نتیجه این جستجو رو توی یه جدول دیگه ذخیره کنم ؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

داشتم جواب پست قبلی رو میدادم که دیدم ویرایش شده!(منظورم پستی هست که با پارامتر مشکل داشتید)
لطفا در صورت جواب گرفتن، یا جواب رو برای دیگر دوستان بذارید و یا کل پست رو ویرایش نکنید تا جواب داده بشه

برای این مشکل هم insert into رو جستجو کنید
ضمنا چرا کدها رو داخل تگ php میذارید؟ از تگ [ c o d e ] استفاده کنید
موفق باشید

delphi7
15-03-2009, 16:16
سلام

لطفا در صورت جواب گرفتن، یا جواب رو برای دیگر دوستان بذارید و یا کل پست رو ویرایش نکنید تا جواب داده بشه
چشم.

برای این مشکل هم insert into رو جستجو کنید
جستجو کردم :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

وقتی کدم رو به صورت بالا در می یارم جواب نمی ده .اگه می شه بازم راهنمایی کنید.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

F A R H A D
15-03-2009, 19:44
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
شما یک فیلد رو insert میکنید، در حالی که تمام فیلدها رو در دستور select دارید

delphi7
15-03-2009, 23:47
شما یک فیلد رو insert میکنید، در حالی که تمام فیلدها رو در دستور select دارید
با اینکه کد رو تغییر دادم ولی هنوز ارور قبلی رو می ده :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اروری که می ده :

Unterminated string

اگه کدی که نوشتم جاییش مشکل داره راهنمایی کنید ممنون می شم .(من اولین باره دارم از دستورات sql استفاده می کنم)

F A R H A D
16-03-2009, 20:58
هنوز ارور قبلی رو می ده
قبلا پیغام خطا رو ننوشته بودید، اما الان که نوشتید فکر نمیکنم پیدا کردن معنی Unterminated string در دیکشنری کار سختی باشه. این مشکلات زمان کامپایل رو با کمی تلاش خودتون میتونید حل کنید. مزیتش اینه که چندین ساعت منتظر نمیمونید

delphi7
17-03-2009, 01:06
قبلا پیغام خطا رو ننوشته بودید، اما الان که نوشتید فکر نمیکنم پیدا کردن معنی Unterminated string در دیکشنری کار سختی باشه. این مشکلات زمان کامپایل رو با کمی تلاش خودتون میتونید حل کنید. مزیتش اینه که چندین ساعت منتظر نمیمونید من معنی این ارور رو می فهمم ولی بدلیل اینکه با دستورات sql آشنایی نداشتم دستورات رو درست بکار نمی بردم و هر کاری هم می کردم جواب نمی داد . الان هم مشکلم حل شد.
باور کنید نوشتن چند خط راهنمایی اینقدرا هم وقت کسی رو نمی گیره.

F A R H A D
17-03-2009, 19:10
من معنی این ارور رو می فهمم ولی بدلیل اینکه با دستورات sql آشنایی نداشتم دستورات رو درست بکار نمی بردم و هر کاری هم می کردم جواب نمی داد
خوب موضوع اینه که مشکل ایجاد شده برای شما هیچ ربطی به دستوری که نوشتید نداشت و در کمتر از یک دقیقه توسط خود شما قابل حل بود

باور کنید نوشتن چند خط راهنمایی اینقدرا هم وقت کسی رو نمی گیره.
اگر یه نگاه کوچیک به انجمن بندازید، چند خط که چه عرض کنم، بنده حقیر و تعدادی از اساتیدم کمی بیش از چند خط نوشتیم
منتها به قول NoneForce عزیز: هلوی پوست کنده یه چیز دیگه هست
موفق باشید

delphi7
17-03-2009, 19:46
اگر یه نگاه کوچیک به انجمن بندازید، چند خط که چه عرض کنم، بنده حقیر و تعدادی از اساتیدم کمی بیش از چند خط نوشتیم
من منظورم در مورد سوال خودم بود .

منتها به قول NoneForce عزیز: هلوی پوست کنده یه چیز دیگه هست
زکات علم نشر آن است. البته عقیده ها فرق می کنه ولی اگه من چیزی رو بلد باشم و بتونم , مشکل دوستان رو حل می کنم , حتی اگه کوچیک باشه.

در هر صورت بخاطر آموزش دستورات sql بازم ممنون.

رشد انسان ها در گرو تبادل اطلاعات است

F A R H A D
19-03-2009, 15:00
با پیغام خصوصی پاسخ میدم که نظم اینجا بیشتر از این به هم نریزه

engehsan
04-05-2009, 11:27
چه جوري متن داخل edit رو با متن تو sql مچ كنم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟

مرد مباح
04-05-2009, 16:16
لطقا شوالتون رو دقيقتر مطرح كنيد! اين سوالي كه پرسيدين عملا معناي خاصي نداره!
اگه ميخوايد اطلاعات رو از توي SQL بخونيد و توي يك Edit بنويسيد، بايد از كدي مشابه با زير استفاده كنيد.
(به شرطي كه ارتباطات بانك اطلاعاتي شما درست باشد)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

hp1361
22-05-2009, 15:47
سلام به دوستان

برای برنامه ام احتیاج دارم که رکوردهای جدولی را انتخاب کنم به شرطی که تنها رکورد آنهایی انتخاب شود که در جدول دومی وجود دارند از کد زیر استفاده کردم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اما ارور زیر رو در زمان اجرا می ده . بانکم اکسس است.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

F A R H A D
22-05-2009, 20:59
کد مشکلی نداره و کاملا صحیح نوشته شده
حدس میزنم از ابزاری غیر از ADO برای اتصال استفاده کردید و یا از providerی غیر از microsoft jet 4.0 بهره بردید

hp1361
23-05-2009, 01:30
سلام مجدد

مشکل از اینجا بود که چند خط بالاتر کوئری filter رو باز کرده بودم و رکورد بهش اضافه کرده بودم اما بعدش نبسته بودمش. بعد از اینکه بستمش مشکل برطرف شد.

ممنون از توجه

morakab
24-05-2009, 14:47
سلام دوستان من چطور از درون دلفی نتیجه تابعی که یک عدد کارنسی مثلا 100.000.000.000 را که با sp گرفته ام بخونم
Parameters.ParamValues['@return_VaLUE'] این تابع عدد منو تا integer کوچیک میکنه

F A R H A D
25-05-2009, 18:30
سلام
به جای دستوری که نوشتید از Parameters.CreateParameter استفاده کنید و نوع متغیر رو خودتون انتخاب کنید، بعد sp رو اجرا کنید

hsajj
23-06-2009, 08:54
سلام
من درمورد RollUp سوالی دارم
وقتی ما از رول آپ استفاده میکنیم و تعداد فیلدهای دستور Group By رو زیاد میکنیم تعدادی سطرهای اضافه بوجود میان مثلا در مورد یک شیء چند سطر ایجاد میشه
میشه این مشکل رو یه جوری حل کرد؟؟؟؟؟؟؟؟

F A R H A D
27-06-2009, 19:33
سلام. در مورد rollUp اطلاعات ندارم، دستور رو بذارید ببینم چه کاری میتونم انجام بدم

F A R H A D
28-06-2009, 22:32
سوال شما رو در جای دیگه هم دیدم. از not null هم در دستورتون برای فیلدی که نباید در نتایج نمایش داده بشه استفاده کنید، به نتیجه دلخواه میرسید

4umbaz
19-07-2009, 22:52
خسته نباشید اقایون این ترم قسمت نبود بیام اینجا یاد بگیرم برنامه افتادم ایشالا ترم بعد از پایه توپ میام اینجا یاد بگیرم

sunFarshid
01-08-2009, 21:42
با سلام
چطور ميتونم با استفاده از كد نويسي پارامتر هاي Storeprocedure را تعريف كنم بدون استفاده از پنجره خصوصيات (Parameters.CreateParameterَِ را چطور براي تعريف بكار ببرم به جاي تعريف با استفاده از فعالسازي خصوصيت parameters) لطفا اگه ممكنه براي جدولي با يك فيلد كد (كليداصلي) و يك فيلد نام دستور را بگين
ممنون

مرد مباح
02-08-2009, 08:35
لطفا بگین کارتون چی هست. شاید اصلا نیازی به StoreProcedure نداشته باشی!

sunFarshid
02-08-2009, 16:07
در اصل میخوام فقط یک Storeprocedure در فرم اول قرار بدم و از بقیه فرمها فقط از اون استفاده کنم برای دیتاست ّو AdoQuery و Adoconnection اینکار رو کردم (مثل کار دیتا ماژول)
تشکر

F A R H A D
02-08-2009, 22:53
سلام. تنها در صورتی خواسته شما عملی میشه که فقط یک sp در sqlserver برای استفاده داشته باشید. اگر اینطور هست میتونید پارامترها رو در در زمان طراحی ایجاد کنید
موفق باشید

sunFarshid
03-08-2009, 07:31
با سلام
توسط ;'ASP.ProcedureName:='procedure name میشه نام هر SP را اول تعیین کرد بعد میمونه تعریف پرامترها توسط دستور
()IASP2.Parameters.CreateParameter که در اجرا میتونیم فراخوانی کنیم اگه میشه در این مورد راهنمایی کنید

F A R H A D
03-08-2009, 23:01
توسط ;'ASP.ProcedureName:='procedure name میشه نام هر SP را اول تعیین کرد
در جریان هستم...
اما وقتی شما نمیخواهید از Parameters.CreateParameter استفاده کنید، باید از روشی که در پست قبلی گفتم استفاده کنید

sunFarshid
04-08-2009, 09:18
برای استفاده از Parameters.CreateParameter چی ؟

F A R H A D
05-08-2009, 15:29
متوجه نشدم. اما اگر منظور شما نحوه به کار بردن دستور هست به راهنمای دلفی مراجعه کنید

pourya_lover
09-08-2009, 23:16
با سلام
سرور گرامی فرهاد جان یه کمکیم به ما کن
دادش سوالمم آسونه البته من گیر کردم توش. من یه جدول دارم با تعدادی فیلد که جدول مشخصات کارمند
حالا من می خوام توش یه جستجو کنم بر این اساس که اگه نام و نام خانوادگی و نام پدر رو در سه تا edit1,edit2,edit3 وارد کردم و دکمه ی جستجو را زدم یه سری label را که دارم با مشخصات این جدول بر اساس این مشخصاتی که در edit ها نوشتم caption ها رو تغییر بده
این کارو با کد کارمندی یعنی فیلد اول جدولم انجام میدم مشکلی نداره ولی با این فیلدها چون از نوع رشته هستند مشکل داره و خطا میگیره
کدمم این هست
Karmand.Close;
Karmand.SQL.Clear;
Karmand.SQL.Add('select * from Karmand where name="''+Edit1.Text+''" and family="'+edit2.text+'" and name_pedar="'+edit3.text'" ');
Karmand.Open;
if Karmand.RecordCount=1 then
begin
...

F A R H A D
10-08-2009, 16:58
سلام
با جستجو مشکل دارید یا بازیابی اطلاعات برای قرار دادن در label ها؟
کد خطا رو هم بنویسید
((کد ها رو هم داخل تگ [ c o d e ] قرار بدید))

pourya_lover
10-08-2009, 18:48
ببین دادش من جستجوم مشکل داره مشکلمم اینجا هستش که
با این کدم که نوشتم تقریبا حل شد ولی یه مشکل دیگه داره
شرمنده جریان این تگ کد رو نمیدونم چیه خیلی شرمنده


Karmand.Close;

Karmand.SQL.Clear;

Karmand.SQL.Add('select * from Karmand where name=:a');
Karmand.Parameters.ParamValues['a']:=QuotedStr(edit1.Text );
Karmand.Open;
if Karmand.RecordCount=1 then
begin
در واقع مشکل اصلی من اینه که جسجوم را بر اساس یه فیلد که همون name باشه درست انجام میده ولی وقتی در query از and استفاده میکنم مثل کد پست قبلیم یا همین کد هم وقتی از and استفاده میکنم که جستجو را بر اساس 3 فیلد که هر 3 رشته ایی هستند انجام بده error میگیره خطاش هم اینه
the text,ntext,and image data type cannot be compared on stored,except when using is null is like operator
این برای کد همین پستم این خطا رو میگره
و برای کد پست قبلیم این خطا رو می گیره
invalid column name "'+edit1.text+'"e

pourya_lover
11-08-2009, 00:28
داش فرهاد به دادم برس نوکرتم به مولا کارم گیره

F A R H A D
11-08-2009, 16:26
کد جستجوی پست اول رو مثل کد پست دوم بنویسید. یعنی به جای where name="''+Edit1.Text+'' از پارامتر ها استفاده کنید.
تگ "کد" رو هم در قسمت حالت پیشرفته ارسال پست ببینید

pourya_lover
11-08-2009, 18:38
داداش فرهاد من این کار رو هم انجام دادم یعنی به این صورتم نوشتم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید]
ولی اینم ایراد میگیره همون خطایی رو که توی پست دومم نوشتم میگیره

F A R H A D
11-08-2009, 20:32
QuotedStr رو حذف کنید

pourya_lover
12-08-2009, 18:46
داش فرهاد با سلام
مرسی این مشکلم حل شد که مشکل ناشی از تعریف فیلدم از نوع text بود که به nvarchair تغییر دادم درست شد
حالا یه مشکلی که دارم اینه که فقط رکورد اول جدولم رو جستجو میکنه یعنی عمل سرچ رو برای باقی رکوردای جدولم انجام نمیده و فقط رکورد اول رو جستجو میکنه بازم اومدیم برای زحمت اگه میشه یه راهنمایی بکن بدجور گیج شدم
مرسی سالار

F A R H A D
12-08-2009, 19:10
سالار با توجه به کدی که شما نوشتید ممکنه کارمندان (رکوردها) زیادی باشند که نام، نام خانوادگی و نام پدر یکسانی دارند. پس بهتره بعد از جستجو رکوردها رو پیمایش کنید تا همه اطلاعات رو داشته باشید و یا در dbgrid نمایش بدید
توصیه بهتر برای حل این مشکل این هست که جستجو رو بر اساس شماره پرسنلی کارمندان انجام بدید اما اگر به هر دلیل مجبور به جستجو با روش خودتون هستید، راه حل قبلی رو انجام بدید
موفق باشید

F A R H A D
12-08-2009, 19:12
سالار با توجه به کدی که شما نوشتید ممکنه کارمندان (رکوردها) زیادی باشند که نام، نام خانوادگی و نام پدر یکسانی دارند. پس بهتره بعد از جستجو رکوردها رو پیمایش کنید تا همه اطلاعات رو داشته باشید و یا در dbgrid نمایش بدید
توصیه بهتر برای حل این مشکل این هست که جستجو رو بر اساس شماره پرسنلی کارمندان انجام بدید اما اگر به هر دلیل مجبور به جستجو با روش خودتون هستید، راه حل قبلی رو انجام بدید
موفق باشید

pourya_lover
13-08-2009, 00:09
خیلی بزرگی مرسی
فقط اینکه جستجوم باید حتما با این فیلدا باشه در فرمم دو نوع جستجو دارم که یکیش همین کد پرسنلی این جستجو با کد کارمندی که کامل کار میکنه اما نوع دومشم یعنی نام و.. لازم دارم
حرف شما درست ممکنه چند رکورد با این مشخصات باشه من نمیخوام dbgrid در فرمم اضافه کنم بحث اینجا نیست بحث اینه که وقتی مشخصات رو میدم و دکمه ی جستجو را میزنم اگه این اطلاعات در رکورد اول جدولم باشه درست کار میکنه ولی اگه در رکورد دوم جدولم باشه کار نمیکنه یعنی جستجو نمیشه من فعلا 3 رکورد اطلاعات دارم که شبیه هم نیستن این جستجو نمیره در رکوردهای بعدی من سرچ کنه یه مشکل عجیب هستش که هر چقدر فکر میکنم نمیدونم ایراد از کجاست
شرمنده که مزاحمت شدم دادش
اینم که میگم سالاری زبون بازی نیست همین که وقت میزاری جواب میدی نشانه ی سالار بودنته امیدوارم که ناراحت نشی از این کلمه

F A R H A D
13-08-2009, 14:46
بحث اینه که وقتی مشخصات رو میدم و دکمه ی جستجو را میزنم اگه این اطلاعات در رکورد اول جدولم باشه درست کار میکنه ولی اگه در رکورد دوم جدولم باشه کار نمیکنه یعنی جستجو نمیشه
پس لطفا کد کامل رو اینجا بذارید و یا قطعه مربوط به این قسمت از برنامه رو به همراه بانک آپ کنید تا من یا دوستان بررسی کنیم

شرمنده که مزاحمت شدم دادش
دشمنان شما شرمنده باشند دوست عزیز

اینم که میگم سالاری زبون بازی نیست همین که وقت میزاری جواب میدی نشانه ی سالار بودنته امیدوارم که ناراحت نشی از این کلمه
میدونم. قبلا هم گفتید
راحت باشید

pourya_lover
13-08-2009, 16:26
فرهاد جان سلام
این کد کامل که واسه قسمت جستجو با نام و ...در یه دکمه نوشتم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدکه با پارامتر هام نوشتم بازم این مشکل هست
آخه خیلی جالبه من همین کد رو برای کد کارمندی تو همین فرم نوشتم که بدون مشکل کار میکنه
پایگاهم که یه جدول داره با اسم Karmand که تمام فیلدای بالا توش هست همشم از نوع nvarchar هستن
از sqlserver2000 استفاده میکنم
نمیدونم چرا اینطوریه فقط اطلاعات رکورد اولم را با label i ها یکی میکنه
ما خیلی نوکرتیم
مرسی

F A R H A D
13-08-2009, 22:00
این کد بدون خطا اجرا میشه!؟
این قسمت از کد همیشه اجرا میشه. یعنی به شرطی که شما گذاشتید ارتباطی نداره. ضمنا این begin..end که قرمز کردم هم نباید وجود داشته باشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
جدول مشخصات رو هم بگذارید تا کد اصلاح شده رو بنویسم

pourya_lover
14-08-2009, 13:00
با سلام به شما
اگه منظورتون در مورد کد پست قبلیم هست آره کامل اجرا میشه بدون خطا هممونطور که گفتم تنها مشکلش اینه که تنها رکورد اول جدولم رو جستجو میکنه یعنی اگه در edit هام نام و نام خانوادگی و نام پدر را بنویسم اگه اطلاعات رکورد اول جدولم باشه caption لیبلهام رو به اطلاعات اون رکوردم تغییر میده ولی اگه اطلاعات رکورهای بعدی جدولم رو بدم طبق دستور messagedlg به من بر میگردونه که همچین گزینه ای نیست
این کد برای کد کارمندی بدون مشکل عمل میکنه


این قسمت از کد همیشه اجرا میشه. یعنی به شرطی که شما گذاشتید ارتباطی نداره.

اینطوری که شما گفتین نیست این کد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
به شرطم بستگی داره یعنی اگه در عمل جستجو رکوردی را پیدا کنه میاد و caption ها رو تغییر میده
من نفهمیدم منظورتون از این جدول مشخصات چی بود یعنی فایل دیتا بیسم رو براتون بفرستم؟
اگه منظورتون این بود من فایل دیتا بیسم رو آپلود کردم اینم لینکش

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بدجور گیجم کرده نوکرتم به دادم برس
بازم مرسی

pourya_lover
14-08-2009, 13:26
داداش فرهاد من یه ویدو از فرمم براتون گذاشتم که نحوه ی کار باهاشو ببینید
اگه دقت کنید وقتی من کد کارمندی نام پوریا رو میدم و جستجو میکنم
درست عمل میکنه حالا در جستجو با نام و... وقتی رکورد اول جدولم که رامین احمدی با نام پدر احمد رو میزنم درست عمل میکنه در حالی که وقتی نام و... پوریا رستمی را که در همون جدول اطلاعاتش هست و با کد کارمندی جستجو میشه را جستجو میکنم رکورد پوریا رو جستجو نمیکنه و میگه گزینه یافت نشد
اینم ویدئوش

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

pourya_lover
15-08-2009, 13:21
دادش فرهاد کجایی ؟

F A R H A D
15-08-2009, 16:08
اینطوری که شما گفتین نیست این کد به شرطم بستگی داره یعنی اگه در عمل جستجو رکوردی را پیدا کنه میاد و caption ها رو تغییر میده
خیر، اینطوری که شما گفتین نیست!
به کد نمونه زیر که به ساختار کد شما شباهت داره توجه کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

کد شما هم دقیقا همین حالت رو داره
ضمنا فایل دیتابیس شما چرا پسوند نداره؟ چه دیتابیسی هست که بتونم باهاش ارتاباط برقرار کنم

pourya_lover
15-08-2009, 20:13
با سلام
خوب حالا من باید چیکار کنم؟
در مورد دیتابیسم حقیقت اینه که نمیدونم چطوری پسورد بذارم اتفاقا تو سایتم گشتم که چطوری پسورد بذارم که مطالبی که دیدم این بود برای sql نمیشه پسورد گذاشت دیگه پشیمون شدم
اگه اینم راهنماییم کنی ممنون میشم
حالا دادش بگو واشسه این جستجو کدم رو باید چطوری بنویسم کارم گیره راهنمایی کنی ممنون میشم

pourya_lover
15-08-2009, 20:23
با سلام
دادش حالا من باید چیکار کنم؟
چه کدی رو باید استفاده کنم نوکرتم کارم گیره کمکم کن داش


ضمنا فایل دیتابیس شما چرا پسوند نداره؟ چه دیتابیسی هست که بتونم باهاش ارتاباط برقرار کنم
داداش حقیقت اینه که نمیدونم چطوری برای دیتابیسم پسورد بذارم اتفاقا دنبال این موضوع گشتم که جوابی که دیدم این بود که برای دیتابیس sql نمیشه پسورد گذاشت اگه اینم راهنمایی کنی دیگه کلی منت سر ما گذاشتی

F A R H A D
15-08-2009, 21:18
در مورد دیتابیسم حقیقت اینه که نمیدونم چطوری پسورد بذارم اتفاقا تو سایتم گشتم که چطوری پسورد بذارم که مطالبی که دیدم این بود برای sql نمیشه پسورد گذاشت دیگه پشیمون شدم
پسورد نه، گفتم پسوند
اگر sql هست که باید 2 تا فایل باشه. یکی با پسوند mdf و دیگری ldf
اول دیتابیس رو بگذارید تا این مشکل رو حل کنیم، موارد بعدی هم قابل حل هست

pourya_lover
16-08-2009, 14:22
خیلی چاکریم داداش

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینم دو فایل که گفتین

F A R H A D
16-08-2009, 18:47
این کد خدمت شما. کد بدون اشکال کار میکنه. اگر مشکلی مشابه قبل داشتید به استفاده ی شما از کامپوننتهای دریافت اطلاعات برمیگرده.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
لطفا مشکلات دیگه رو که قبلا مطرح کردید، اگر ارتباطی با موضوع این تاپیک ندارند در تاپیک جدید پیگیری کنید
موفق باشید

pourya_lover
17-08-2009, 03:48
با سلام به فرهاد بزرگوار


این کد خدمت شما. کد بدون اشکال کار میکنه. اگر مشکلی مشابه قبل داشتید به استفاده ی شما از کامپوننتهای دریافت اطلاعات برمیگرده.

عزیز من از یه adoconnction و adoquery استفاده میکنم با این کدی که نوشتین بازم مشکلم حل نشد به همین خاطر رفتم جدول کارمند رو حذف کردم و دوباره ساختم این بار دیگه کلا هیچ جستجویی انجام نمیده حتی با کد شما اگه لطف کنی و یه نمونه برنامه برام بدی که جستجو با این مشخصات رو انجام میده ممنون میشم بازم میگم من با کد کارمندی این جستجوم مشکل نداره اگه کمکم کنی خیلی ممنون میشم

pourya_lover
17-08-2009, 14:22
دادش فرهاد من رفتم و با انگلیسی اطلاعات رو تایپ کردم که وقتی این کارو کردم مشکل حل شد یعنی در کل مشکل اینجاست که با اطلاعات فارسی مشکل داره و بر اساس تایپ فارسی نمیتونه جستجو کنه میشه کمک کنی

F A R H A D
17-08-2009, 16:56
در کل مشکل اینجاست که با اطلاعات فارسی مشکل داره و بر اساس تایپ فارسی نمیتونه جستجو کنه میشه کمک کنی
tntunicode رو جستجو کنید و لطفا به درخواست من هم توجه کنید:

لطفا مشکلات دیگه رو که قبلا مطرح کردید، اگر ارتباطی با موضوع این تاپیک ندارند در تاپیک جدید پیگیری کنید

pourya_lover
18-08-2009, 00:10
دادش فرهاد با سلام این TntUnicode چی هست به چه درد من میخوره
یه توضیحی بدی ممنون میشم چطوری مشکل من رو حل میکنه
درمورد درخواستت من چه بحثی خارج از بحث تایپیک کردم؟
اگه اشتباهی رخ داده معذرت میخوام

matinebi
22-08-2009, 20:43
میخوام به جای این کد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

از کد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
استفاده کنم

کد اول درست عمل میکنه ولی من به like نیاز ندارم باید حتمی از = استفاده کنم

مشکل: در کد دوم زمانی که آرایه یک کالا داشته باشد هیچ فیلدی برنمیگردونه زمانی که دو تا کالا داشته باشد کالای اولی رو برمیگردونه زمانی که سه تا کالا داشته باشد دو تای اولی رو برمیگردونه به همین ترتیب....

مشکل کجاست

لطفا راهنمایی کنید

F A R H A D
23-08-2009, 16:37
شمارنده حلقه رو از 0 شروع کنید. اولین عنصر آرایه
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید هست.

m-ram
14-09-2009, 20:28
سلام
چطور مي شه خروجي گزارش رو توي اكسل نمايش داد(خروجي ado query)
يعني توي قسمت گزارش گيري كه توي فرم گذاشتم مي خوام آمارشو توي اكسل ببينم؟؟؟؟؟؟:18::13::13:

karimi98
11-10-2009, 17:05
فرهاد جان دستت درد نكنه . خيلي ممنون
من در مورد گزارش گيري در دلفي مشكل دارم . لطفا منو راهنمائي كن

karimi98
11-10-2009, 20:07
خيلي خيلي ممنون . منم طرفدار پر و پا قرستم .

F A R H A D
12-10-2009, 16:40
فرهاد جان دستت درد نكنه . خيلي ممنون
من در مورد گزارش گيري در دلفي مشكل دارم . لطفا منو راهنمائي كن
خواهش
گزارش گیری ارتباطی به موضوع این تاپیک نداره دوست عزیز

خيلي خيلي ممنون . منم طرفدار پر و پا قرستم .
قرص

alaveh
28-11-2009, 03:54
سلام
من این کد رو توی قسمت SQL از یک BDE TSQL در دلفی 6 می نویسم ولی کار نمی کنه

Delete
From tbl1
Where code = 5

این پیام رو میده :
Error Creating Cursor handle

کدم درسته ولی توی دلفی نمیدونم چجوریه که کار نمیکنه

من از paradox7 و BDE TSQL استفاده می کنم و نمی خوام از حلقه در کد دلفی استفاده کنم که سرعت کم بشه .
البته می دونم که دلفی 6 قدیمی شده و پارادوکس 7 جدول خوبی نیست و ... ولی الآن کارم اینجوری گیر کزده .
ممنون میشم اگر کسی بلده جواب بده .

alaveh
28-11-2009, 04:30
مشکل حل شد
کد درسته
من برای اجرا activate رو true می کردم که اشتباه بود . باید ExecSQL رو اجرا می کردم .

seyed.m.27
20-12-2009, 00:26
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من میخوام وقتی از دستور فوق الذکر استفاده میکنم مقدار فیلد code از رکورد جاری table3 در تمام رکوردهایی که با دستور بالا از جدول یک select شده در هنگام insert درtable2درج بشه

با توجه به اینکه جدول 2 و 3 با فیلد code لینک شده اند و وقتی در جدول 2 یک رکورد جدید ایجاد میکنم مقدار فیلد code رکورد جاری در table 3 رو خودش در فیلد Code در جدول2 درج میکنه
مشکل من در کپی رکوردها از جدول 1 به 2 و اختلال در پیوند جدول 2و3 ست به این صورت که وقتی کپی صورت میگیره بجای درج مقدار فیلد code رکورد جاری جدول 3 در فیلد code رکوردهای کپی شده از جدول 1به 2 مقدار صفر رو درج میکنه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟

F A R H A D
20-12-2009, 20:53
با توجه به اینکه جدول 2 و 3 با فیلد code لینک شده اند و وقتی در جدول 2 یک رکورد جدید ایجاد میکنم مقدار فیلد code رکورد جاری در table 3 رو خودش در فیلد Code در جدول2 درج میکنه
ارتباط رو چطور برقرار کردید؟
کدی که شما نوشتید هیچ ارتباطی رو نشون نمیده. شما باید بین جدول 2 و 3 با یک عبارت join ارتباط برقرار کنید و هنگام insert ، فیلد code رو هم انتقال بدید
ضمنا دستور شما مشکل داره و تمام رکوردهایی که از جدول 1 دارای شرط "chech=true" هست، بدون در نظر گرفتن ارتباط با جدول 3، به جدول 2 وارد میشه
ضمنا نیازی به پست زدن مشابه در چند جای مختلف نیست. چون مشکل شما بیشتر به دستورات sql مربوط میشه پستی که در تاپیک همه چيز در مورد Database ها ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) ارسال کردید حذف شد

seyed.m.27
21-12-2009, 00:14
[QUOTE]ارتباط رو چطور برقرار کردید؟/QUOTE]
من ارتباط بین جدول 2و3 رو در خود برنامه ایجاد کردم در ado جدول 2 قسمت master field بین فیلد code جدول 2و3 ارتباط برقرار کردم
از کد بالا استفاده کردم برای همون کاری که شما اشاره کردید.
خواسته من اینه: من در جدول 3 رکوردی را در dbgride3 انتخاب میکنم خوب طبق قاعده تمام رکوردهایی که در جدول 2 فیلد code اونها برابر با فیلد code رکورد انتخابی در جدول 3 هست رو در dbgrid 2 نمایش میده . از دستور بالا خواستم استفاده کنم که در جدول 1 تمام رکوردهایی که فیلد check اونا true هست را در آخر رکورد هایی که در dbgride 2 نمایش داده شده اضافه بشه. این لازمه ش اینه که مقدار فیلد code رکوردهایی که اضافه میشن برابر باشه با مقدار فیلد code رکورد جاری از جدول3 ولی مشکل اینجاست که وقتی این رکوردها رو اضافه میکنم مقدار فیلد Code اونا صفر هست یعنی مقدار فیلد code رکورد جاری جدول 3 در فیلدهای code رکوردهای اضافه شده درج نشد
چه پیشنهادی دارید
این سوال و سورس برنامه رو در آدرس ذیل گذاشتم ولی جواب درستی نگرفتم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

F A R H A D
21-12-2009, 15:34
من ارتباط بین جدول 2و3 رو در خود برنامه ایجاد کردم در ado جدول 2 قسمت master field بین فیلد code جدول 2و3 ارتباط برقرار کردم
شما کلا مسیر رو دارید اشتباه میرید
جدول 2و 3 با هم ارتباط master/detail دارند اما میخواهید با دستورات sql از جدول 1 به جدول 2 رکورد insert کنید.

چه پیشنهادی دارید
کار مشکلی پیش رو ندارید. از چه دیتابیسی استفاده میکنید؟

این سوال و سورس برنامه رو در آدرس ذیل گذاشتم ولی جواب درستی نگرفتم
در جریان هستم. چون پست 7 و 10 اون تاپیک رو من دادم!

مرد مباح
21-12-2009, 18:48
دوست عزیز یک نمونه ساده توی لینک امضای من پیوست شده.
حوالی پست 440. با عنوان Master/Detail. فکر کنم بتونه کمکت کنه.

seyed.m.27
21-12-2009, 23:38
کار مشکلی پیش رو ندارید. از چه دیتابیسی استفاده میکنید؟
از اکسس استفاده کردم

در جریان هستم. چون پست 7 و 10 اون تاپیک رو من دادم!
حاجی ، شرمنده شدیما!!!!!!!

F A R H A D
21-12-2009, 23:51
-در اکسس یک query ایجاد کنید و جدول 2 و 3 رو با فیلد code مرتبط کنید و ذخیره کنید
-برای insert در جدول 2 از این query و شرطی که برای جدول 1 در نظر گرفتید استفاده کنید
موفق باشید

MMJ431
22-12-2009, 00:06
سلام، آقا میتونی منو یه کمک کوچیک کنی؟
میخوام با کد SQL و با کمک ADOQuery توسط خود Delphi یه Table با تعدادی Field بسازم؛ کد زیر این کار رو میکنه...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مشکل اینحاست که میخوام اسم Table رو خود کاربر وارد کنه، یعنی یه حالت پارامتریک داشته باشه، باید چی کار کنم؟؟

seyed.m.27
22-12-2009, 00:27
از مثال آقای "مرد مباح: استفاده کردم مشکل حل شد
از آقا فرهاد هم ممنونم
جناب حاج فرهاد اون مشکلی که در مورد درج تعداد "صفرها" با دامنه مشخص مثلا برای حساب سیبا 13 عدد یا برای کد ردیف 5 عدد صفر لحاظ بشه و وقتی کاربر عددی رو برای فیلد کد ردیف وارد میکنه مثلا وقتی عدد 12 رو وارد کرد مقدار فیلد "کد ردیف" 00012 بشه و .....
این مشکل رو ظاهرا فرمودید که قبل از export به فایل متنی چک کنم. من اینکار رو در همان مرحله export حل کردم ولی چون با شماره حسابها سروکار دارم کار خطرناکیه
میخوام وقتی کاربر عدد رو وارد میکنه همون لحظه چک بشه که به مقدار تفاضل تعداد عدد وارده با دامنه خودش به سمت چپ ععد صفرها رو وارد کنه و تغییرات رو ثبت کنه
چه راهی رو پیشنهاد میدید؟؟؟؟؟؟؟؟؟

siamak5561
22-12-2009, 18:00
سلام من میخوام توی یک تیبل بر اساس 3 تا فیلد به انتخاب کاربر سرچ کنه به صورتی که اگه قسمتی از متن رو هم وارد کنه تمام رکوردهای موجود رو بیاره کد ها برای 3تا دکمه ی رادیویی کاملا شبیه به هم نوشتم ولی بسیار عجیبه که فقط برای رادیو باتن 1 درست عمل میکنه و برای 2تای دیگه باید عین فیلد وارد بشه تا عمل جستجو رو انجام بده.
از دیتابیس paradox استفاده میکنم و هر 3 فیلد از نوع Alphabetic هستن
ممنون میشم راهنماییم کنید.





procedure TForm2.Button1Click(Sender: TObject);
var str:string;
begin
str:='select * from data where data."';
if radiobutton1.Checked=true then str:=str+'Code"like"'+edit1.Text+'"'
else if radiobutton2.Checked=true then str:=str+'Name"like"'+edit2.Text+'"'
else if radiobutton3.Checked=true then str:=str+'Family"like"'+edit3.Text+'"';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add(str);
query1.Open;
end;

مرد مباح
22-12-2009, 19:43
قبل و بعد از edit.text یک علامت * ویا % استفاده کنید تا جستجو رو کامل انجام بده.

F A R H A D
22-12-2009, 20:38
سلام، آقا میتونی منو یه کمک کوچیک کنی؟
میخوام با کد SQL و با کمک ADOQuery توسط خود Delphi یه Table با تعدادی Field بسازم؛ کد زیر این کار رو میکنه...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مشکل اینحاست که میخوام اسم Table رو خود کاربر وارد کنه، یعنی یه حالت پارامتریک داشته باشه، باید چی کار کنم؟؟
این کد رو بنویسید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


این مشکل رو ظاهرا فرمودید که قبل از export به فایل متنی چک کنم. من اینکار رو در همان مرحله export حل کردم ولی چون با شماره حسابها سروکار دارم کار خطرناکیه
میخوام وقتی کاربر عدد رو وارد میکنه همون لحظه چک بشه که به مقدار تفاضل تعداد عدد وارده با دامنه خودش به سمت چپ ععد صفرها رو وارد کنه و تغییرات رو ثبت کنه
چه راهی رو پیشنهاد میدید؟؟؟؟؟؟؟؟؟
تاپیک جدید ایجاد کنید. به اینجا مربوط نمیشه

MMJ431
23-12-2009, 00:28
ممنون، حالا یه مشکل دیگه؛ این Query رو من وقتی که تو ADOQuery مینویسم، وفتی میخوام Active اش رو True کنم، پیغام زیر نمایش داده میشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

مرد مباح
23-12-2009, 17:44
ممنون، حالا یه مشکل دیگه؛ این Query رو من وقتی که تو ADOQuery مینویسم، وفتی میخوام Active اش رو True کنم، پیغام زیر نمایش داده میشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

دوست عزیز. شما باید در هنگام اجرای برنامه این کد رو بنویسید.
ظاهذا اطلاعات RunTime شما کم هست ولی باید اون رو یاد بگیرید . این چیزی که فرهاد عزیز نوشته در هیچ دیتابیس SQLSupport جوابگو نیست و برای زبان دلفی میباشد! :46:

siamak5561
24-12-2009, 21:38
سلام من میخوام توی یک تیبل بر اساس 3 تا فیلد به انتخاب کاربر سرچ کنه به صورتی که اگه قسمتی از متن رو هم وارد کنه تمام رکوردهای موجود رو بیاره کد ها برای 3تا دکمه ی رادیویی کاملا شبیه به هم نوشتم ولی بسیار عجیبه که فقط برای رادیو باتن 1 درست عمل میکنه و برای 2تای دیگه باید عین فیلد وارد بشه تا عمل جستجو رو انجام بده.
از دیتابیس paradox استفاده میکنم و هر 3 فیلد از نوع Alphabetic هستن
ممنون میشم راهنماییم کنید.





procedure TForm2.Button1Click(Sender: TObject);
var str:string;
begin
str:='select * from data where data."';
if radiobutton1.Checked=true then str:=str+'Code"like"'+edit1.Text+'"'
else if radiobutton2.Checked=true then str:=str+'Name"like"'+edit2.Text+'"'
else if radiobutton3.Checked=true then str:=str+'Family"like"'+edit3.Text+'"';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add(str);
query1.Open;
end;


قبل و بعد از edit.text یک علامت * ویا % استفاده کنید تا جستجو رو کامل انجام بده.
دوست عزیز این کاری رو که گفتید انجام دادم ولی این سری کلا خطا میگیره از کد. اگه براتون امکانش هست کدش رو برام بنویسید . یه دنیا ممنون میشم.

F A R H A D
25-12-2009, 00:37
از کدی شبیه زیر استفاده کنید و مقادیر رو به صورت پارامتر ارسال کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

siamak5561
25-12-2009, 01:29
از کدی شبیه زیر استفاده کنید و مقادیر رو به صورت پارامتر ارسال کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ممنون دوست عزیز ، من اینرو برای یه تیکه از پروژم می خوام و استادمون هم به صورت پارامتری درس نداده و من اصلا نمیدونم چه جوری کار میکنه. :41:اگه براتون مقدوره همون کد خودم رو تصحیح کنید. ممنون میشم.:blush:

F A R H A D
25-12-2009, 11:06
ممنون دوست عزیز ، من اینرو برای یه تیکه از پروژم می خوام و استادمون هم به صورت پارامتری درس نداده و من اصلا نمیدونم چه جوری کار میکنه. :41:اگه براتون مقدوره همون کد خودم رو تصحیح کنید. ممنون میشم.:blush:

بفرمایید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MMJ431
28-12-2009, 21:21
دوست عزیز. شما باید در هنگام اجرای برنامه این کد رو بنویسید.
ظاهذا اطلاعات RunTime شما کم هست ولی باید اون رو یاد بگیرید . این چیزی که فرهاد عزیز نوشته در هیچ دیتابیس SQLSupport جوابگو نیست و برای زبان دلفی میباشد! :46:

حق با شماست؛ ممنون؛ اما من یه کارایی کردم؛ یعنی Table مورد نظر با همون نام ساخته میشه... منتها یه مشکل کوچیک داره، اینه که آخرش پیغام زیر رو نمایش میده:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

F A R H A D
29-12-2009, 17:13
کدی رو که نوشتید به صورت کامل قرار بدید. ضمنا این پیغام فقط زمان کامپایل برنامه با دلفی نمایش داده میشه و یا زمان اجرای برنامه به تنهایی هم هست؟

MMJ431
31-12-2009, 14:52
زمان اجرای برنامه هم هست...


کد SQL :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


پیغام، بعد از اجرا :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

F A R H A D
31-12-2009, 16:07
کد رو در یک رویداد به query اضافه کنید و مستقیما در خصوصیت sql ننویسید، اگر اجرا نشد با ید به فیلهای متنی not null رو هم اضافه کنید

MMJ431
03-01-2010, 22:48
اگه بخوام علاوه بر اسم جدول، اسم فیلد های جدول هم از ورودی فرم من گرفته بشه، چه تغییری در Query بالا باید ایجاد کنم؟

F A R H A D
03-01-2010, 23:29
جواب سوال شما در همون پستی که کد مورد نظر شما رو نوشتم موجود هست. شما در اصل با یک رشته سر و کار دارید و فقط کافیه برای قسمت هایی که تغییر میکنند، در کدی که مینویسید جایی قرار بدید. مثل کدی که قبلا گذاشتم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

alaveh
08-01-2010, 20:02
دوستان عزیز

اگر یک query خیلی طولانی بشه اشکالی داره یا مثل برنامه نویسی محدودیتی نداره ؟

F A R H A D
08-01-2010, 23:10
سلام
دوست عزیز بهتر نیست اول تست کنید، اگر مشکلی داشت بعد مطرح کنید؟
خیر. من تا حالا محدودیتی ندیدم اما طولانی کردن بی مورد یک کوئری هم جالب نیست چون برای یک تغییر جزیی یا رفع اشکال اون به مشکل بر میخورید.
اگر کار خاصی روی چند جدول هست، میتونید در خود دیتابیس query رو ایجاد کنید و در دلفی فقط با یک کد کوچک اون رو فراخوانی کنید
موفق باشید

alaveh
09-01-2010, 02:42
سلام
دوست عزیز بهتر نیست اول تست کنید، اگر مشکلی داشت بعد مطرح کنید؟
خیر. من تا حالا محدودیتی ندیدم اما طولانی کردن بی مورد یک کوئری هم جالب نیست چون برای یک تغییر جزیی یا رفع اشکال اون به مشکل بر میخورید.
اگر کار خاصی روی چند جدول هست، میتونید در خود دیتابیس query رو ایجاد کنید و در دلفی فقط با یک کد کوچک اون رو فراخوانی کنید
موفق باشید
نه دوست گلم بهتر نبود چون نمیشه خیلی دقیق تستش کرد . کوئری توی برنامه ساخته میشه و من تا حدودی هم تستش کردم وی خواستم خیالم راحت باشه که اگر یک وقت توسط یوزر طولانی تر شد ایرادی از برنامه نگیره .
ممنون

delphiDAC
17-02-2010, 23:36
حداكثر طول Query در SQL
65536

F A R H A D
18-02-2010, 17:22
با تشکر از delphiDAC عزیز، اطلاعات کاملتر رو اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) ببینید

IntelCentrino
26-03-2010, 13:43
با فرض اینکه هر رکورد از یک فیلد با نام title تشکیل شده است، برای بدست آوردن "تعداد رکوردهای تکراری" (تعداد title های تکراری) باید چه کوئری بنویسم؟!

F A R H A D
01-04-2010, 15:10
با فرض اینکه رکوردها فیلدی با مقدار title داشته باشند، کد زیر رو بنویسید:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

babak869
17-05-2010, 11:41
با سلام
چطور میشه توی دلفی دستورات یک استورپروسیجر رو مقلا در یک عنصر ممو نوشت و اونو اجرا کرد . من از کد زیر استفاده میکنم اما ایراد میگیره

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

من میخوام بتونم از توی دلفی متن یک استورپروسیجر رو توی مثلا ممو لود کنم و اونو اجرا کنم
متشکرم

مرد مباح
18-05-2010, 07:30
من هنوز نفهمیدم از Memo میخوای توی command کپی کنی یا برعکس
به هر حال هر کدوم از این روشها رو پیش بگیری کدش تقریبا مشابه کدی هستش که نوشتی.

مشکلت کجاس؟

abrras
18-05-2010, 09:29
تو جدول پرسنلم دو تا فیلد Nam و Family دارم که میخوام تو فرمX توی یه Edit این دو فیلد ادغام بشن (نیازی ندارم تو پایگاه بفرستمش چون کد پرسنلی میره تو جدول مربوط به فرم X ) که edit هم با استفاده از فرم Y که خود فرم Y به فرم پرسنل ربط داره پر میشه .. فرم Y شامل یک Edit برای جست و جو در Dbgrid و یک Dbgrid که برخی اطلاعات فرم پرسنل را نشان میده ..
حالا چطور میشه با زدن اینتر در Edit مربوط به فرم X (که فرم Y باز میشه و عمل جست و جو انجام شد ) نام و نام خانوادگی در Edit فرم X نشان داده بشه .. (توضیحات کامل)
در بحث اذغام دو فیلذد در دی بی گرید هم نصف این سوالو مطرح کردم ...

مرد مباح
18-05-2010, 11:21
1. مشکل شما با زدن دکمه اینتر هست یا نه ؟
2. باید فرمها رو باهم لینک کنی (Use Unit). بعدش به راحتی از کدی مشابه زیر استفاده کنید :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

abrras
22-05-2010, 16:38
نه عزیزم مشکلم این نیست..مشکلم اینه که نمی دونم چطور میشه مقدار 2تا فیلدو توی یه EDit بریزم ..
البته یه راه حل هایی پیدا کردم و جواب هم گرفتم ...
2تا فیلدمم نام و فامیلیه ...

راستی چطور میشه روی فیلدای جدولام محاسبات انجام بدم (نیازی ندارم جواب جواب محاسبه تو پایگاه ذخیره بشه )..
یعنی نیاز دارم 3تا فیلدو از سه جدول مختلف داشته باشم و روش محاسبه انجام بدم ..

alien66
22-05-2010, 17:20
با سلام
اموزش خيلي محشريه واقعا" تشكر ميكنم اي والله داره
چيزاي زيادي ياد گرفتم
يه مشكل داشتم
من دو تا جدول دارم كه به صورت زيره فيلداش
(كد ملي-نام پدر-نام خانوادگي-نام-كد فرد)
در جدول دوم
(تاريخ پايان مرخصي-تاريخ شروع مرخصي- سال مرخصي-تعداد روز-كد فرد)


و كد فرد كليد هستش و تاريخ هم ميلاديه و به صورت

00:00:00.000 2009-04-30
ميخوام تعداد روزهاي مرخصي هر فرد رو درهر ماه به صورت جداگانه و براي سال 88 داشته باشم
مثلا تير ماه چند روز مرداد چند روز
بايد چه جوري عمل كنمبازم اگه جوابشم نبود از آموزشات تشكر مي كنم.

مرد مباح
23-05-2010, 07:35
نه عزیزم مشکلم این نیست..مشکلم اینه که نمی دونم چطور میشه مقدار 2تا فیلدو توی یه EDit بریزم ..
البته یه راه حل هایی پیدا کردم و جواب هم گرفتم ...
2تا فیلدمم نام و فامیلیه ...

راستی چطور میشه روی فیلدای جدولام محاسبات انجام بدم (نیازی ندارم جواب جواب محاسبه تو پایگاه ذخیره بشه )..
یعنی نیاز دارم 3تا فیلدو از سه جدول مختلف داشته باشم و روش محاسبه انجام بدم ..

1. میتونی مقادیر رو به صورت مستقیم از دیتابیس توی یک Edit قرار بدی :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

2. برای انجام محاسبات در یک بخش برنامت که مرتبط هست، کد محاسباتت رو بنویس.

abrras
24-05-2010, 13:11
edit 1.text := table.fieldvalue['field1']+table.fieldvalue['field

منم از همین روش استفاده کردم .. جواب هم گرفتم .. ولی نمی دونستن درسته یا غلطه:20:

برای محاسباتم تو خود برنامه حجم کد نویسیم خیلی زیاد میشد ...
از Stored Proc استفاده کردم .. امیدوارم جواب بگیرم ..

alien66
25-05-2010, 18:13
كسي نبود چقده تحويل گرفتين بابا مام تازه كاريم
يه گوشه چشمي به پست 404 همين تاپيك بندازين

مرد مباح
25-05-2010, 21:55
فکر کردم دیگه سری اینجا نمیزنی.
حق انتخاب ماه رو داری یا میخوای به صورت یکپارچه همه ماهها رو به تفکیک نشون بدی؟
به صورت جداش راحت تره ولی به صورت یکپارچه کمی سخته.

بگو چی می خوای؟

darya_66_12_12
30-05-2010, 00:29
چرا بهتره اسم های SQL رو بهتره [ ] بزاریم؟
البته اینو میدونم که وقتی میخوایم از اسم های اصلی استفاده کنیم تو [ ] باید بزاریم

abrras
08-06-2010, 10:23
یه دستور واسه change یه dbedit میخوام که دی بی گرید مربوط به یه جدولو بشه با اطلاعات یه جدول دیگه پر کرد.
مثلا یه جدول خرید دارم که میخوام نام و کد از جدول مشتری تو فیلدای نام و کد مشتری(این فیلدا از نوع محاسباتیه) که تو جدول خرید تعریف کردم ذخیره بشه که این کار با تغییر متن یه DBEdit انجام میشه .. برای کد و نام مشتری که تو دی بی گرید فرم خرید هم از فیلد نوع محاسباتی استفاده کردم . نمی خوام تو فرم خرید یه adoquery واسه جدول مشتری داشته باشم که دی بی گرید به این adoquery ربط داشته باشه.

abrras
08-06-2010, 11:03
براي پيشگيري از مشكلات بعدي:
- نوع فيلد رو رشته اي و تاريخ رو با فرمت yy/mm/dd يا yyyy/mm/dd وارد كنيد. مثلا 9/8/86 به صورت 09/08/86 ذخيره ميشه

فرمتشو چطوری میشه تغییر داد؟؟

soaleman
08-06-2010, 13:20
با عرض سلام و خسته نباشيد خدمت دوستان
من 1 سوال داشتم؟
چطوري ميشه يك package رو SQL Server فراخواني كرد
متشكرم

مرد مباح
09-06-2010, 10:35
متاسفانه منظورتون از این سوتا رو نفهمیدم.
میشه لطفا کاملتر توضیح بدین؟

abrras
17-06-2010, 11:11
اگر بخواهم در SQL عدد 2485999.99999999999 به عدد 2486000 تبدیل کنم باید از چه دستوری استفاده کنم.

soaleman
21-06-2010, 14:52
متاسفانه منظورتون از این سوتا رو نفهمیدم.
میشه لطفا کاملتر توضیح بدین؟

با عرض سلام و تشكر از شما دوست گرامي
منظورم اينه كه
من تو SQL Server يك package درست كردم كه اطلاعات يك Sheet تو Excel رو تو يك Table از بانكم وارد ميكنه

حالا ميخوام اين package تحت دستورات StoreProcedure فراخواني كنم و اجراش كنم

اميد وارم منظورم رو رسونده باشم
با سپاس

abrras
07-08-2010, 10:30
آیا دلفی با sqlserver 2005 سازگاری دارد؟

مرد مباح
10-08-2010, 22:22
اگر بخواهم در SQL عدد 2485999.99999999999 به عدد 2486000 تبدیل کنم باید از چه دستوری استفاده کنم.

کدش توی دلفی Roundto هستش. ولی توی SQL رو باید بگردین. حفظ نیستم و تا حالا امتحان نکردم.

hp1361
12-08-2010, 22:08
با سلام

دوستان من به کد SQL ای احتیاج دارم که مقدار شرط(Where) رو بصورت پارامتر براش ارسال کنم و در صورتی که پارامتر مقداری رو ارسال نکرد(نوع پارامتر String است) تمام رکوردها بازگردانده شود.چه درستور بنویسم؟قابل توجه که بانکم Access است و معمولا دستوراتش یه خورده متفاوته با SQL SERVER

ممنون و منتظرم

مرد مباح
15-08-2010, 10:42
اگر با دلف لینک هستی، میتونی این شرط رو توی دلفی بزاری.
من تا حالا از شرط گذاری توی SQL برای بانک access استفاده نکردم و نمیدونم جواب میده یا نه.

hossein_h62
21-09-2010, 12:36
اينجا كسي نيست كه بخواد سوال ما رو جواب بده!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!

دوست عزیز منظورتون از package چیه ؟؟!

hamedvahedi
24-11-2010, 10:23
با سلام

دوستان من به کد SQL ای احتیاج دارم که مقدار شرط(Where) رو بصورت پارامتر براش ارسال کنم و در صورتی که پارامتر مقداری رو ارسال نکرد(نوع پارامتر String است) تمام رکوردها بازگردانده شود.چه درستور بنویسم؟قابل توجه که بانکم Access است و معمولا دستوراتش یه خورده متفاوته با SQL SERVER

ممنون و منتظرم

اگر بخواي برای هر فيلدي که مي خواي در شرط ازش استفاده کني، يک پارامتر بگيري، کارت سخت ميشه. بهترين کار اينه خودت جمله شرط رو بسازي و به پراپرتي SQL نسبت بدي.
مثال زير رو در نظر بگير و خودت به چيزي که ميخواي تعميمش بده:



YourConditionStr:='';
If UserId>0 Then YourConditionStr:=YourConditionStr+' and UserId='+IntToStr(UserId);
If Username<>'' Then YourConditionStr:=YourConditionStr+' and Username='''+Username+ '''';
SQL := 'Select * from MyTbl where (1=1) '+ YourConditionStr

khoosheye parvin
06-12-2010, 20:52
سلام من چند تا سوال داشتم. خیلی ممنون میشم که کمکم کنید.
1- من پایگاه داده ای دارم. در دلفی فرمی ایجاد کردم، که در این فرم باید اطلاعات خواسته شده وارد بشه. میخوام با زدن کلید "تایید" این اطلاعات وارد پایگاه داده، جدول مربوطه بشه. نمیدونم چه کدی باید در دلفی بنویسم؟
2- یکی از فیلدهای جدول من در پایگاه داده باید با اضافه شدن رکورد جدید به ترتیب اضافه بشه (1و2و3و...) این مورد رو هم نمیتونم درست کنم؟ (در ضمن این فیلد کلید اصلی هست)
3- دستور حذف یک رکورد را که به وسیله DBGrid در فرم نشون داده شده میخواستم؟ که با انتخاب اون رکورد و زدن کلید delete اون رکورد از جدول حذف بشه؟

ببخشید من مهلتم خیلی کمه تا آخر هفته باید پروژمو تحویل بدم. متاسفانه اطلاعات زیادی هم در مورد کد نویسی دلفی ندارم.
از همتون ممنون که اینقدر زحمت میکشید.

REZ1_MAHTAB
13-12-2010, 19:16
سلام و خسته نباشید
یک برنامه با دلفی و sql2000 نوشتم
توی برنامه کد برای attach کردن دیتابیس نوشتم



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این کد جواب میدهد اما اگر فایل EXE برنامه و دیتابیس را به جای دیگری منتقل کنم
اتصال برقرار نشده و برنامه یکی از دو پیام زیر را میدهد


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

که اولی روی فایل MDF و دومیLDF است

فکر میکنم logfile هنوز آدرس پوشه قبلی رو داره برای همین جواب نمیده
مشکل از کجاست؟

سعی کردو Attach را با استفاده ازSQLExpress Console
ایجاد کنم اما خطا میدهد


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته دیتابیسم رو 2008 هم تعریف کرده و دوباره امتحان کردم اما مشکل حل نشد

لطفا راهنمایی کنید

REZ1_MAHTAB
17-12-2010, 13:19
بازم سلام

اشکال کارم در permmision ها بود که حل شد


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بازم متشکر

hosseinnajafei
18-12-2010, 00:40
سلام با عرض خسته نباشید
من وقتی در دلفی میخوام جدولمو چاپ کنم برای اولین با نشون می ده ولی یرای بار دوم نشون نمی ده .
با adotable و FastReport 4.3 Full

frxReport1.ShowReport;
frxReport1.LoadFromFile('list_moshtri.fr3');

hp1361
03-01-2011, 10:09
سلام من چند تا سوال داشتم. خیلی ممنون میشم که کمکم کنید.
1- من پایگاه داده ای دارم. در دلفی فرمی ایجاد کردم، که در این فرم باید اطلاعات خواسته شده وارد بشه. میخوام با زدن کلید "تایید" این اطلاعات وارد پایگاه داده، جدول مربوطه بشه. نمیدونم چه کدی باید در دلفی بنویسم؟
2- یکی از فیلدهای جدول من در پایگاه داده باید با اضافه شدن رکورد جدید به ترتیب اضافه بشه (1و2و3و...) این مورد رو هم نمیتونم درست کنم؟ (در ضمن این فیلد کلید اصلی هست)
3- دستور حذف یک رکورد را که به وسیله DBGrid در فرم نشون داده شده میخواستم؟ که با انتخاب اون رکورد و زدن کلید delete اون رکورد از جدول حذف بشه؟

ببخشید من مهلتم خیلی کمه تا آخر هفته باید پروژمو تحویل بدم. متاسفانه اطلاعات زیادی هم در مورد کد نویسی دلفی ندارم.
از همتون ممنون که اینقدر زحمت میکشید.


سلام

درمورد موارد زیر مطالعه بفرمائید

ADOConnection و ADOTable و ADOQuery و DataSource و دستورات SQL

موفق باشیم

abolfazltorbat
05-01-2011, 03:12
میشه در مورد مطلبی که گفتید بیشتر توضیح بدید

hadi_hhh
17-07-2011, 20:26
سلام
من یه مشکلی تو جستجو دارم :
من یه جستجو دارم که هم بر اساس نام و هم نام خانوادگیه ولی مشکل اینجاست که نمیتونم این دوتا حستحو رو به هم ربط بدم
یعنی اینکه وقتی در یک edit نام خانواىطي رو وارى ميكنم جستجو با موفقيت انجام ميشه , حالا وقتي كه روي edit نام کلیک میکنم و میخوام که تو نام خانوادگی های پیدا شده اسمی رو پیدا کنم با مشکل مواجه میشم یعنی دوباره کل پایگاه رو براساس اسم جستجو میکنه در صورتی که من میخوام فقط در بین نام خانوادگی های پیدا شده اسم مورد نطرمو پیدا کنم
ممنون میشم اگه کسی بتونه منو راهنمایی کنه

مرد مباح
17-07-2011, 20:57
کدی که شما وارد کردین مشکل داره.
باید اونو به چند حالت بشکنین :
1. حالت خالی : همه چیز رو نشون بده
2. حالت پر : بر اساس خودش بگرده
3. اگخ خودش و فیلد جانبی پر باشه : بر اساس هر دو مورد جستجو کنه.

موفق باشی.

hadi_hhh
18-07-2011, 10:43
کدی که شما وارد کردین مشکل داره.
باید اونو به چند حالت بشکنین :
1. حالت خالی : همه چیز رو نشون بده
2. حالت پر : بر اساس خودش بگرده
3. اگخ خودش و فیلد جانبی پر باشه : بر اساس هر دو مورد جستجو کنه.

موفق باشی.
آقا دمت گرم حل شد:20:

faraz20faraz
04-03-2012, 10:53
مرسی مطالب بسیار مفید بود اما من یک سوال دارم : چگونه یک دستور طولانی sql را که حدود 30 آیتم را از ورودی میگیره به چند خط بشکنیم تا برنامه خطا نگیرد؟

faraz20faraz
04-03-2012, 11:52
چگونه میشود یک دستور طولانی sql را که حدود 30 آیتم را از ورودی میگیرد در چند خط بنویسیم که دلفی7 ایراد نگیرد. چون فقط 255 کاراکتر در یک خط قبول میکنه؟

delphidark
06-03-2012, 13:27
چگونه میشود یک دستور طولانی sql را که حدود 30 آیتم را از ورودی میگیرد در چند خط بنویسیم که دلفی7 ایراد نگیرد. چون فقط 255 کاراکتر در یک خط قبول میکنه؟

دوست عزیز یک Query در واقع یک رشته هست بنابر این می تونید تمام عملگر های رشته ای رو روی Query اعمال کنید مثلا برای شکستن یک خط به چند خط به راحتی میتونید از پلاس (+) استفاده کنید.
و یا حتی در خود Query از #13 استفاده کنید.
موفق باشید.

keyvan1985
01-06-2012, 14:34
سلام خسته نباشین
من تو دلفی میخوام با استفاده از یک dbgrid اطلاعات را ویرایش حذف و اضافه کنم adoconnection , adotable ,data source اضافه کردم و ارتباط با sql برقرار شده فقط نمیدونم چجوری کدها برای عملیات حذف اضافه و دلیت در کجا بنویسم 3 تا کلید برای عملیات دارم

miyandari
15-08-2012, 08:21
با سلام و تشکر از مطالب بسیار مفیدتون

یه سئوال داشتم

من تو دلفی میخوام با استفاده از sql بزرگترین مقدار یک ستون رو دریافت کنم و یک واحد به اون اضافه کنم و در یک ادیت نشون بدم یعنی یطوری نقش auto increment رو داشته باشم .

اگه لطف کنین راهنمایی بفرمایید ممنون .

من از کد زیر برای بدست آوردن بزرگترین عدد ستون استفاده می کنم ولی نمیدونم چجوری مقدار بدست اومده را تو یه ادیت نشون بدم .



with adoquery1 do
begin
close;
sql.add('select max(id) as max_id from tablename);
open;
end;

مرد مباح
16-09-2012, 07:12
با سلام و تشکر از مطالب بسیار مفیدتون

یه سئوال داشتم

من تو دلفی میخوام با استفاده از sql بزرگترین مقدار یک ستون رو دریافت کنم و یک واحد به اون اضافه کنم و در یک ادیت نشون بدم یعنی یطوری نقش auto increment رو داشته باشم .

اگه لطف کنین راهنمایی بفرمایید ممنون .

من از کد زیر برای بدست آوردن بزرگترین عدد ستون استفاده می کنم ولی نمیدونم چجوری مقدار بدست اومده را تو یه ادیت نشون بدم .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ssaffari
10-10-2012, 02:02
سلام دوستان
یک سوال در زمینه اس کیو ال دارم
فرض من 100 تا جدول دارم بنا به عللی و می خواهم یک گزارش بگیرم که مانده آخر هر جدول را به من بدهد مثل مانده حساب افراد در حسابداری با sql چگونه می توانم این کار را انجام دهم اصلا حلقه در sql وجود دارد یا خیر درضمن من با delphi کار می کنم همراه sql ممنون میشم اگر کمک کنید

ginze
07-06-2013, 11:09
با سلام خدمت دوستان
من در یک query از دستورات sql زیر استفاده کردم:

select members.id,lname,fname,melli,sum(amount) as sumofamount,sum(prior) as pr from members,mpay
where mpay.id=members.id
group by members.id,lname,fname,melli


prior یک فیلد محاسباتیه که با یک سری فرمولها در OnCalcFields یکی از جدولها محاسبه میشه.
اگه sum(prior) as pr حذف کنم دستورات اجرا میشه درغیر اینصورت خطا میگیره وچون به مقدار pr نیاز دارم باید حتما محاسبه شود.
لطفا اگه کسی از دوستان میتونه کمک کنه.
با تشکر

sepidehdam
22-05-2014, 11:13
کسی میتواند در مود دلفی 7 به من راهنمائی کند ممنون میشم:n21:

sepidehdam
22-05-2014, 11:15
راهنمائی در مورد دلفی 7

فلایت سازان
04-12-2015, 12:12
سلام
این پست کمی قدیمی است ولی سوالی دارم وقتی کاراکتر ها کوچک و بزرگ هستند فیلتر درست در نمی آید مثلا در جدول اینگونه نوشته باشیم:
Table ودر فیلتر بنویسیم table یا TABLE جدول خالی در می اید و دچار خطا میشه!
چطور کاری کنیم به بزرگی و کوچکی حروف حساس نباشه چون معلوم نیست در جدول هم چگونه نوشته شده!
مرسی
حسن

- - - Updated - - -

دستور کار شده:

procedure TForm1.ADOQuery2FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
ACCEPT:= (
(FORM1.Edit1.Text='')OR
(POS(FORM1.Edit1.Text,FORM1.ADOQuery2.FIELDBYNAME( 'NAME').AsString)>0))
end;

- - - Updated - - -

یکی از دوستان فرمودند :
هر دو طرف رو uppercase کنید یا اینکه با دستور sametext مقایسه رو انجام بدید.
البته چطوریشو نفرمودند
مرسی
حسن

فلایت سازان
04-12-2015, 12:14
در پست های قبل دستورات
MID()
LCASE()
برای بزرگ و یا کوچک کردن فیلد ها آمده این دستورات چگونه استفاده می شونند
مرسی
حسن

*Batman*
01-01-2016, 21:37
سلام
این پست کمی قدیمی است ولی سوالی دارم وقتی کاراکتر ها کوچک و بزرگ هستند فیلتر درست در نمی آید مثلا در جدول اینگونه نوشته باشیم:
Table ودر فیلتر بنویسیم table یا TABLE جدول خالی در می اید و دچار خطا میشه!
چطور کاری کنیم به بزرگی و کوچکی حروف حساس نباشه چون معلوم نیست در جدول هم چگونه نوشته شده!
مرسی
حسن
دستور کار شده:
procedure TForm1.ADOQuery2FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
ACCEPT:= (
(FORM1.Edit1.Text='')OR
(POS(FORM1.Edit1.Text,FORM1.ADOQuery2.FIELDBYNAME( 'NAME').AsString)>0))
end;
یکی از دوستان فرمودند :
هر دو طرف رو uppercase کنید یا اینکه با دستور sametext مقایسه رو انجام بدید.
البته چطوریشو نفرمودند
مرسی
حسن

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


در پست های قبل دستورات
MID()
LCASE()
برای بزرگ و یا کوچک کردن فیلد ها آمده این دستورات چگونه استفاده می شونند
مرسی

اینا رو لازم ندارید.

فلایت سازان
04-01-2016, 11:26
ACCEPT:= (
(FORM1.Edit1.Text='')OR
(LowerCase(FORM1.Edit1.Text) = LowerCase(FORM1.ADOQuery2.FIELDBYNAME( 'NAME').AsString)));

سلام
کد بالا را تست زدم ولی جستجو خالی در می آید
ولی با کد زیر درست هست و فقط کاراکتر های بزرگ و یا کوچک را نشان نمی دهد

ACCEPT:= (
(FORM1.Edit1.Text='')OR
(POS(FORM1.Edit1.Text,FORM1.ADOQuery2.FIELDBYNAME( 'NAME').AsString)>0))
end;

mehdy.delshekaste
23-06-2016, 21:24
من تو دیتابیس دو تا جدول دارم یکی new1 و یکی new2
این دو تا جدول توسط id به هم مرتبط هستن یعنی new2 ادامه new1 هستش.
حالا نیاز داریم یکی از ستونهای new1 رو که اسمش هست author رو به صورت کامل براساس id مرتبط خودش یک کپی در new2 داشته باشم.
یعنی author رو تو new2 هم داشته باشم.
به شرطی که اگه مثلا تو جدول new1 ردیف id=3 ستون author عدد 5 ثبت شده عینا تو جدول new2 ردیف id=3 ستون author عدد 5 ثبت بشه.
ضمنا شماره id ها به ترتیب نیست یعنی بیش از 4 هزار داده هست ولی شماره ها از 1 تا 4000 نیست مثلا id=5 هست ولی 6 تا 10 نیست و 11 هست و ....
میتونید دستوری که برا این کار استفاده میشه رو برام بذارید ممنون میشم.

فلایت سازان
24-06-2016, 11:55
سلام
حالا باید برعکس کار کنید دو جدول شما با فیلدID به هم وصل هستند جدول دوم دارای کد مشابهی است که نشان بدهد این دو جدول دارای شناسه یکسانی هستند حالا با این سناسه مشترک جدول 1 را فیلتر و کپی کنید در جای دلخواهتان! تو SQL می نویسید
SELECT * FROM TABEL NAME WHERE FIELD NAME=YOUR COD
راستی اگه شما چون جداولتون بهم وصل هستند با فیلتر جدول 1 ب طبع باید جدول 2 هم فیلتر بشه فقط کافیه کپی کنید
حسن

mehdy.delshekaste
25-06-2016, 10:25
با این کارم راه افتاد:
UPDATE
new2
SET
new2
.author=(SELECT
new1.
author
FROM
new1
WHERE
new2.id=
new1.id);

Messi & Neymar
02-08-2017, 11:36
سلام
میخواستم بدونم چطور میشه تعداد کاراکتر های ورودی رو توی DBGRID کنترل کرد که از یه مقداری بیشتر نشه؟

maf88
08-10-2017, 00:10
سلام
من یک جدول داره که می خوام بر اساس دو ورودی که از edit2 , edit3 می گیرم فیلتر کنم جدول رو.

چطوری باید از دو تا edit از دستور زیر استفاده کنم:

ADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL. Add('select * from inventory where name=:param');ADOQuery1.Parameters.ParamValues['param']:=Edit1.Text;ADOQuery1.Open;



تو این دستور فقط بر اساس edit1 جدول رو فیلتر می کنه ولی لازمه هم دو گزینه عمل بشه
ممنون می شم راهنمایی کنید