PDA

View Full Version : مبتدی: استفاده از متغیر در کویری های اکسس



alaveh
پنج شنبه 16 تیر 1390, 00:03 صبح
سلام

ببخشید سوال خیلی ابتدایی هست

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

مثلا برای نمونه برام اضافه کردن یک رکورد جدید به یک تیبل رو کد نویسی کنید . ( کویری توی خود اکسس نوشته بشه و مقدار فیلدها از نرم افزار که با دلفی داره نوشته میشه ارسال بشه )

ممنون

alaveh
جمعه 17 تیر 1390, 02:10 صبح
آخه مگه میشه هیچ کس تا حالا این کار رو نکرده باشه اینجا ؟؟؟؟؟
من که دیگه نمیخوام ولی کار سختی نبود .
یاد بگیرید . زشته به خدا . این کار مشکلی نبود .

mazoolagh
جمعه 17 تیر 1390, 23:38 عصر
البته زشتیش برای کسی هست که از انجام یک جستجوی ساده هم ناتوان هست!

این تاپیک در مورد نحوه پاس کردن پارامتر به کوئری هست
http://barnamenevis.org/showthread.php?63475

بغیر از این هم چند تاپیک در مورد نحوه ساخت کوئری پارامتریک داریم.

alaveh
شنبه 18 تیر 1390, 01:54 صبح
بله قبول

ولی یه سری هم به انجمنهای خارجی تخصصی دلفی بزنید بد نیست . ببینیم اونجا کدومش زشت تره .

به هر صورت ممنون ولی این چیزی نبود که من خواستم . همونطور که نوشتم نحوه کد نویسی sql در اکسس با متغیر و ارسال مقدار از دلفی .

اینو میخوام :

insert into tbl_x ( y.z) values ( y1 , z1 )

که y1 z1 متغیر باشن و از دلفی مقدارشون ارسال بشه

alaveh
دوشنبه 20 تیر 1390, 03:45 صبح
بالاخره تو انجمن تخصصی برنامه نویسی کسی پیدا نشد SQL نوشته باشه ؟

payman_xxp
دوشنبه 20 تیر 1390, 08:40 صبح
سلام
دوست عزیز، ساختار دستوری SQL همه جا یکسانه، بجای گشت گذار توی انجمنهای تخصصی دلفی( در جای خودش احترام خاصی برای این زبان قائلم)، یه کوچولو در انجمنهای SQL اگه چرخ میزدی، ساختار دستور insert into همراه با پارامتر رو حتما میدید(جزو دستورات پایه هستش)، اینترنت که پر نمونه هست، help برنامه ها هم هست هم SQL ، هم ACCESS ، انصافا دوستان سایت برنامه نویس هم در حد توان کمک میکنن( دیر یا زود داره سوخت و سوز نداره :چشمک:)، بگذریم.

یه توضیح کوچیک بگم که در این روش هم در اکسس میشه ( تا حدودی نه عینا)از کوئری مانند استوپروسیجرها در SQL استفاده کرد، ساختار همونه اول فیلدهایی که باید append بشن بعدش مقدار، اگر هم میخواهیم مقادیر رو پاس بدیم( از هر زبان برنامه نویسی) باید قبل از نام فیلد @ بزاریم، همین:

INSERT INTO tIn ( inDate, inKind, inDes, inRtb, inXsk, inPrt, inFbr, inXak, inTvn )
VALUES ([@inDate], [@inKind], [@inDes], [@inRtb], [@inXsk], [@inPrt], [@inFbr], [@inXak], [@inTvn]);


امیدوارم رضایت خاطر حاصل شده باشه.
موفق باشید.

alaveh
دوشنبه 20 تیر 1390, 12:42 عصر
سلام
دوست عزیز، ساختار دستوری SQL همه جا یکسانه، بجای گشت گذار توی انجمنهای تخصصی دلفی( در جای خودش احترام خاصی برای این زبان قائلم)، یه کوچولو در انجمنهای SQL اگه چرخ میزدی، ساختار دستور insert into همراه با پارامتر رو حتما میدید(جزو دستورات پایه هستش)، اینترنت که پر نمونه هست، help برنامه ها هم هست هم SQL ، هم ACCESS ، انصافا دوستان سایت برنامه نویس هم در حد توان کمک میکنن( دیر یا زود داره سوخت و سوز نداره :چشمک:)، بگذریم.

یه توضیح کوچیک بگم که در این روش هم در اکسس میشه ( تا حدودی نه عینا)از کوئری مانند استوپروسیجرها در SQL استفاده کرد، ساختار همونه اول فیلدهایی که باید append بشن بعدش مقدار، اگر هم میخواهیم مقادیر رو پاس بدیم( از هر زبان برنامه نویسی) باید قبل از نام فیلد @ بزاریم، همین:

INSERT INTO tIn ( inDate, inKind, inDes, inRtb, inXsk, inPrt, inFbr, inXak, inTvn )
VALUES ([@inDate], [@inKind], [@inDes], [@inRtb], [@inXsk], [@inPrt], [@inFbr], [@inXak], [@inTvn]);


امیدوارم رضایت خاطر حاصل شده باشه.
موفق باشید.

دوست عزیز ممنون از لطف شما . ناراحتی من از اینه که حتی انجمنهای تخصصی ما هم با خارجیا تفاوت داره . من یک سوال خیلی ساده مثل همین رو که اینجا چه توی برنامه نویس چه توی ایران دلفی و .... توی 20 روز جواب نمیگیرم اونجا توی 3 ساعت بهم جواب دادن و توی 2 ساعت بعدش هم 4 تا کامنت زدن برام تا کامل مشکلم حل شد ولی اینجا یا سایر تالارهای ایرانی همه از آدم طلبکارن متاسفانه . توی تالارهای خارجی اگر سوالتو جای مناسبی نپرسی بعد از اینکه جواب دادن راهنمایی می کنن که محل مناسبش فلان جا بود .

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

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

و یک سوال دیگه : اصلا نوشتن query توی اکسس سرعتش بیشتر از استفاده از TAdoQuery توی دلفی هست ؟

payman_xxp
سه شنبه 21 تیر 1390, 10:18 صبح
دوست عزیز ممنون از لطف شما . ناراحتی من از اینه که حتی انجمنهای تخصصی ما هم با خارجیا تفاوت داره . من یک سوال خیلی ساده مثل همین رو که اینجا چه توی برنامه نویس چه توی ایران دلفی و .... توی 20 روز جواب نمیگیرم اونجا توی 3 ساعت بهم جواب دادن و توی 2 ساعت بعدش هم 4 تا کامنت زدن برام تا کامل مشکلم حل شد ولی اینجا یا سایر تالارهای ایرانی همه از آدم طلبکارن متاسفانه . توی تالارهای خارجی اگر سوالتو جای مناسبی نپرسی بعد از اینکه جواب دادن راهنمایی می کنن که محل مناسبش فلان جا بود .

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

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

و یک سوال دیگه : اصلا نوشتن query توی اکسس سرعتش بیشتر از استفاده از TAdoQuery توی دلفی هست ؟
سلام
دوست من کاش آدرس تاپیک دلفی که این سوال رو مطرح کرده بودی میدادی تا همونجا پاسخ میدادم.( پیدا کردم ولی چه جوابی داده بودی خودت، خداییش حق دارن بچه های دلفی اگه جواب ندن :اشتباه:)
بگذریم
عذرخواهی از دوستان میکنم اگر جواب به تاپیک اکسس مربوط نیست.
کدی که اینجا برات میزارم باید تغییرات لازم رو بر اساس متغییر ها و برنامه خودتون بدی:
procedure TForm1.Button1Click(Sender: TObject);
var id: Integer;
begin
with ADOStoredProc1, Parameters do begin
Connection := YourConnection;
ProcedureName := 'InsertCategory';
//
ParamByName('@CategoryName').Value := 'A Category Name';
//هر تعداد پارامتر خواستی اینجا اضافه کن
ExecProc;

end;
end;


چون تکنولوژی ADO هستش دقیقا همین کار در هر زبانی روشش همینه.
امیدوارم کارت راه بیوفته.
موفق باشید.

alaveh
سه شنبه 21 تیر 1390, 13:22 عصر
عجب

باشه

پس ببخشید حالا که خیلی بد حرف زدم .

از شما هم ممنون به خاطر لطفتون . چک می کنم امیدوارم که ایرادی نداشته باشه .