تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال عن ترقيم تلقائي في الأوراكل وربط العميل
#1
السلام عليكم ورحمة الله وبركاته

أخواني أخواتي

عندي سؤالين عن قاعدة البيانات أوركل
انا ربط القاعدة بالبرنامج والحمد الله شغاله 100 %
لاكن واجهتني مشكلتين :

1- ترقيم التلقائي ID
في الأكسس كان الحقل إللي أبيه يترقم تلقائي أختار AutoNumber
لاكن في الأوركل لا يوجد شيء بهذا الاسم فكيف أقوم بترقيم التلقائي ؟


2- ربط العميل
في الأكسس كنت أعطيه رقم IP حق الشبكه ومكان القاعدة وخلاص يتم ربطه
اما في الأوراكل في المره الأولى أعطيته أسم الجهاز ومانفع وفي المره الثانيه أعطيته رقم IP مانفع
فياليت أعرف وش السبب ؟! هل يجب ان اعرف له شيء عشان يرى القاعدة ؟!

Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة:
#2
بالنسبه للترقيم التلقائي لابد من عمل triger في قاعدة البيانات يقوم بهذا الامر لان الترقيم التلقائي غير موجود في اوراكل
ثانيا فيما يتعلق بالاتصال عن بعد هل جهاز العميل مثبت عليه oracle client software
الرد }}}
تم الشكر بواسطة:
#3
amgadtamer كتب :بالنسبه للترقيم التلقائي لابد من عمل triger في قاعدة البيانات يقوم بهذا الامر لان الترقيم التلقائي غير موجود في اوراكل
ثانيا فيما يتعلق بالاتصال عن بعد هل جهاز العميل مثبت عليه oracle client software

لا غير مثبت
ولاكن سمعت انو في طريقة بالكود ينوب عن تثبيت oracle client software
فهل هذا الأمر صحيح ؟!


وبالنسبه بالـ ( triger ) كيف أقوم بمعله هل يوجد شرح مسبق عنه
Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة:
#4
لابد من تثبيت Oracle Client Software

لكى تقوم بعمل autonumber لابد من 3 خطوات

أولا- أن يكون لديك حقل رقمى وليكن عبارة عن Primary key
ثانيا- تقوم بعمل ما يسمى sequence في الجدول
ثالثا- عمل ال trigger الذى سوف يقوم بالترقيم التلقائي

PHP كود :
لنفرض لدينا هذا  الجدول 
CREATE TABLE users 
(
  
ID           NUMBER(50)    NOT NULL,
  
Name  VARCHAR2(100)  NOT NULL);

ALTER TABLE users ADD (
  
CONSTRAINT users_pk PRIMARY KEY (ID));

CREATE SEQUENCE id_seq;

لاحظ تم إضافة ال sequence 

ثم بعد ذلك قم بعمل trigger وبه التالى

CREATE 
OR REPLACE TRIGGER USERSID 
BEFORE INSERT ON USERS 
FOR EACH ROW
WHEN 
(new.id IS NULL)
BEGIN
  SELECT ID_SEQ
.NEXTVAL
  INTO   
:new.id
  FROM   dual
;
END
الرد }}}
تم الشكر بواسطة:
#5
شكرا أخي
جزاك الله خير ووضعه في موازين حسناتك

تم الحل
Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم