با سلام
من می خواهم به وسیله فرم های سیستم امکان تعریف کاربر جدید را داشته باشم.
البته در sql*plus این کار را بلدم ولی نمیدانم چطور این کار را در یک فرم انجام دهم .مثلا چطور می توان synonym برای جداولم به وسیله فرم ها ایجاد کنم.
خیلی متشکرم
با سلام
من می خواهم به وسیله فرم های سیستم امکان تعریف کاربر جدید را داشته باشم.
البته در sql*plus این کار را بلدم ولی نمیدانم چطور این کار را در یک فرم انجام دهم .مثلا چطور می توان synonym برای جداولم به وسیله فرم ها ایجاد کنم.
خیلی متشکرم
برای ساخت sysnonym میتونی از دستور زیر استفاده کن
create public synonym synonym_name for Owner.table_name;
برای تعریف یوزر مشکلت دقیقا چیه؟
سلام
من نمی توانم داخل فرم هایم که با Developer6i می سازم امکان تعریف کاربر جدید را بنا به درخواستهای سازمان داشته باشم چون نمیدانم چطور می توان همان دستورات که داخل sqlplus می نویسی را داخل فرم هایم بنویسم و اجرا کنم
اگر امکان دارد یک تکه کد که بتواند داخل فرم ها برای دکمه ها قرارداد و کاربر ایجاد کند را برایم بنویسید
خیلی خیلی ممنون
سلام
امکان استفاده از کدهای ایجاد کاربر sqlplus در داخل فرم ها نیست . چون داخل فرمها شما از دستور create user ... باید استفاده کنید و این دستور را در دل یک تریگر , تابع و یا زیر برنامه قرار دهید که این حالت در برنامه نویسی اوراکل اجازه داده نمی شود . دو پیشنهاد میکنم . اول اینکه در داخل دیتابیس دنبال پکیجی بگردی که اوراکل به کمک آن در حین ایجاد کاربر جدید در جداول دیتا دیکشنری عملیات مربوطه را ثبت می کند شاید بتوانی از این پکیج در داخل و روالهای آن در داخل فرم استفاده کنید . راه حل دوم و عملی این کار این است که شما جداولی برای نگهداری کاربران سیستم آن سازمان و حقوق و سطح دسترسی آنها ایجاد کنید و در هر بار که کاربر جدیدی ایجاد می کنید این جداول را هم بهنگام سازی کنید.
سلام
جناب systemadmin عزیز، در Forms اوراکل می تونید با استفاده از رویه FORMS_DDL دستورات DML و DDL رو اجرا کنید.
ترکیب نوشتاری اونهم به شکل زیر هستش :
FORMS_DDL (statement);
برای بررسی موفقیت آمیز بودن اجرای دستور هم از خصوصویت FORM_SUCCESS استفاده می کنید.
برای مثال :
FORMS_DDL (‘CREATE table temp (n_col number)‘);
IF not FORM_SUCCESS THEN
MESSAGE (‘Table creation failed.‘);
RAISE form_trigger_failure;
END IF;
لطفا برای مسائلی که در مورد پاسخ اونها مطمئن نیستید، بصورت قاطع اظهار نظر نکنید، ممنون.
با سلام
از راهنمایی شما خیلی ممنون
کمک بزرگی بود . لطفا اگر امکان دارد نحوه استفاده از
text item
را در این دستور برایم توضیح دهید یعنی در قسمتی که باید نام کاربر را بنویسم از یک
که در روی فرم قراردارد استفاده کنمtext item
باز هم از شما دوستان متشکرم
با سلام
از راهنمایی شما خیلی ممنون
کمک بزرگی بود . لطفا اگر امکان دارد نحوه استفاده از
text item
را در این دستور برایم توضیح دهید یعنی در قسمتی که باید نام کاربر را بنویسم از یک
که در روی فرم قراردارد استفاده کنمtext item
باز هم از شما دوستان متشکرم
سلام
کسی نیست به من کمک کنه
من نمی توانم از یک کاربر به کاربر دیگری سوئیچ کنم
لطفا من را راهنمایی کنید
مرسی
سلام
آقای حسن خانی عزیز، بهتره یه بار یه کتاب در مورد Forms اوراکل بخونی، یا اینکه سر کلاس بری و یاد بگیری، چون مثل بقیه محیطهای توسعه که ما با اونها کار می کنیم نیست، و خصوصیات خاص خودش رو داره.
اگه وقت کردم تست می کنم برات جواب رو میفرستم (تا شب جوابش رو برات میفرستم).
سلام
از لطف شما متشکرم .
من کتاب های زیادی را دیدم ولی این مطالب را پیدا نکردم
اگر کتاب خاصی هست لطفا آن را به من معرفی کنید
متشکرم
سلام حسن خانی عزیز
شرمنده دیر شده، این مودم ما رفته بود مسافرت نشد جوابو برات ارسال کنم.
خوب راه حلی که من استفاده کردم :
1- در تریگر ON-LOGON در سطح فرم کد زیر رو می نویسی :
DECLARE
connected BOOLEAN := FALSE;
tries NUMBER := 3;
un VARCHAR2(30);
pw VARCHAR2(30);
cs VARCHAR2(30);
BEGIN
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
WHILE connected = FALSE and tries > 0 LOOP
LOGON_SCREEN;
un := GET_APPLICATION_PROPERTY( USERNAME );
pw := GET_APPLICATION_PROPERTY( PASSWORD );
cs := GET_APPLICATION_PROPERTY( CONNECT_STRING );
LOGON( un, pw || '@' || cs, TRUE );
IF FORM_SUCCESS THEN
connected := TRUE;
END IF;
tries := tries - 1;
END LOOP;
IF NOT CONNECTED THEN
MESSAGE('Too many tries!');
RAISE FORM_TRIGGER_FAILURE;
END IF;
END;
2- یه BUTTON روی یه CANVAS میزاری یا هر جای دیگه و تو رویداد WHEN-BUTTON-PRESSED اون کد زیر رو می نویسی :
BEGIN
LOGOUT;
LOGON('', '', TRUE );
EXCEPTION
WHEN OTHERS THEN
LOGON('', '', TRUE );
END;
خوب کاربر در زمان ورود به فرم برای اولین بار باید اطلاعات ورودش رو بده و بعد وارد میشه، دکمه رو که زد LOGOUT میکنه و دوباره مجبوره LOGON کنه.
امیدوارم بدردت بخوره.
البته میتونی بهتر و کاملترش کنی.
سلام
در ضمن اسم کتابهایی رو که خوندی بگو.
سلام
نمیدونم چطور از شما تشکر کنم
واقعا من را شرمنده کردید.
من کتابهای اوراسل را می خونم . ولی معمولا چیزهایی را که می خواهم پیدا نمی کنم
باز هم ازشما تشکر می کنم .
با سلام خدمت شما دوست گرامی
لطفا اگر امکان به این دستورات نگاه کرده و اشکالات آن را برایم رفع کنید.متشکرم
من در این دستورات می خواهم به یک کاربر که قبلا ایجاد شده دسترسی های لازم را برای دیدن جداول کاربر اصلی بدهم.
ابتدا چون با کاربر اصلی متصل هستم باید تغییر کاربری داده و با کاربر دوم که نام و رمز آن را از روی فرم می خوانم (user - pass) متصل شوم.(که این کار با هیچ کدام از دستورا ت زیر انجام نمی شود)؟؟؟؟؟؟؟؟؟؟؟؟؟؟
در ضمن برای ایجاد (synonym ) هم مشکل دارم و نمی توانم از دستور ( form_ddl) استفاده کنم و همچنین برای ایجاد (grant ) آیا روش خاصی دارد؟؟؟؟؟؟؟؟؟؟؟؟
][LEFT][/LEFTbegin
--forms_ddl('connect '||:user||'/'||:pass||'@rassa');
logout;
LOGON( :user, :pass || '@' || 'rassa', TRUE );
if not form_success then
message('Çã˜Çä ÈÑÞÑÇÑí ÇÊÕÇá æÌæÏ äÏÇÑÏ');
message('Çã˜Çä ÈÑÞÑÇÑí ÇÊÕÇá æÌæÏ äÏÇÑÏ');
else
message('ÇÊÕÇá ÈÑÞÑÇÑ ÔÏ');
message('ÇÊÕÇá ÈÑÞÑÇÑ ÔÏ');
end if;
forms_ddl('create synonym peymankar for mehdi.peymankars;');
if not form_success then
message(' not synonym');
message('not synonym');
else
message(' synonym');
message(' synonym');
end if;
forms_ddl('connect mehdi/mehdi@rassa');
if not form_success then
message('Çã˜Çä ÈÑÞÑÇÑí ÇÊÕÇá ÈÇ ÓÑæÑ æÌæÏ äÏÇÑÏ');
message('Çã˜Çä ÈÑÞÑÇÑí ÇÊÕÇá ÈÇ ÓÑæÑ æÌæÏ äÏÇÑÏ');
else
message('ÇÊÕÇá Èå ÓÑæÑ ÈÑÞÑÇÑ ÔÏ');
message('ÇÊÕÇá Èå ÓÑæÑ ÈÑÞÑÇÑ ÔÏ');
end if;
forms_ddl('grant all on peymankars to '||:user||'with grant option');
if not form_success then
message('Çã˜Çä ÇíÌÇÏ ÏÓÊÑÓí åÇ æÌæÏ äÏÇÑÏ');
message('Çã˜Çä ÇíÌÇÏ ÏÓÊÑÓí åÇ æÌæÏ äÏÇÑÏ');
else
message('ÏÓÊÑÓí åÇí áÇÒã Èå Çíä ˜ÇÑÈÑ ÏÇÏå ÔÏ');
message('ÏÓÊÑÓí åÇí áÇÒã Èå Çíä ˜ÇÑÈÑ ÏÇÏå ÔÏ');
end if;
end;
آخرین ویرایش به وسیله hasankhani : پنج شنبه 21 اردیبهشت 1385 در 08:31 صبح
سلام
اول - اینکه کدها رو تو تگهای مربوطه قرا بده که خوانا باشن
دوم - اینکه پسر خوب دستور FORMS_DDL رو یه بار تو Help خود برنامه میدیدی بعد خودت متوجه استباهت میشدی، عبارات موجود در رویه FORMS_DDL نباید حاوی ; باشه.
عین عبارت از Help خود Forms Developer یه نگاهی بکن :
Usage Notes
....
If you use FORMS_DDL to execute a single DML or DDL statement:
Omit the trailing semicolon to avoid an invalid character error.
....
آخرین ویرایش به وسیله majid_afra222 : دوشنبه 18 اردیبهشت 1385 در 15:21 عصر
با سلام
از راهنمایی شما متشکرم
راستی نگفتید من برای یادگیری این موارد از کدام کتاب استفاده کنم.
متشکرم
سلام
اول اینکه یه کلاس خوب با یه استاد خوب پیدا کن، بهترین کار یادگیری مفاهیم و اصول هستش.
بعد کتابهای خود اوراکل رو مطالعه کن.
بقیه اش با تجربه و کار خود به خود و کم کم بدست میآد.