الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

فحص صحة الايميل باستخدام sql

مغلقمُجاب
بدأه ost3z في 14 يوليو 2013 · 4 رد · 948 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة  (( رمضان كريم ))

اريد ان اعمل فحص صحة الايميل عند ادراج البيانات داخل جدول

بالبحث وجدت العديد من الشروحات باستخدام فانكشن ولكن كل الفانكشنز ترجع قيمة 0 او 1 (true - false )

الكود

ALTER FUNCTION [dbo].[validEmail]
(@email VARCHAR(255))   
--Returns true if the string is a valid email address.  
RETURNS bit  
as  
BEGIN  
     DECLARE @valid bit  
     IF @email IS NOT NULL   
          SET @email = LOWER(@email)  
          SET @valid = 0  
          IF @email like '[a-z,0-9,_,-]%@[a-z,0-9,_,-]%.[a-z][a-z]%'  
            AND @email NOT like '%@%@%'  
             AND CHARINDEX('.@',@email) = 0  
             AND CHARINDEX('..',@email) = 0  
             AND CHARINDEX(',',@email) = 0  
             AND RIGHT(@email,1) between 'a' AND 'z'  
               SET @valid=1  
     RETURN @valid  
END

ثم استدعى عذى الفانكشن داخل جملة stored procedure

ALTER PROCEDURE [dbo].[vaildEmail]

 
    @User_Name varchar(100),
    @password varchar(50),
    @idalaa varchar(100),
    @Email varchar(100)	
AS
BEGIN
	INSERT INTO TBL_Users
                      (User_Name, password, idalaa, Email)
VALUES     
(@User_Name,@password,@idalaa,dbo.isValidEmailFormat( @Email))

	
END

وعند  تنفيذ  البروسيجدير فى عملية الادراج تكون القيمة المدرجة 1 او 0 كيف يمكن تعديل الفانكشن للتحقق من صحة الايميل مع ادارج الايميل اذا كان صحيح اما اذا كان خطأ يظهر رسالة بان الايميل غير صحيح  ؟؟؟ ارجوا الافادة ولكم جزيل الشكر

#2

up

#3 أفضل إجابة

try this code

ALTER PROCEDURE [dbo].[vaildEmail]
    @User_Name varchar(100),
    @password varchar(50),
    @idalaa varchar(100),
    @Email varchar(100)	
AS
BEGIN
if dbo.isValidEmailFormat( @Email)=1
	INSERT INTO TBL_Users (User_Name, password, idalaa, Email)
			VALUES (@User_Name,@password,@idalaa,@Email)	
else
RAISERROR('Not Valid Email Format', 16, 1)
END
#4

شكر جزيلا اخى الكريم ولكن هناك ايرور عند  التنفيذ

Msg 15281, Level 16, State 1, Procedure vaildEmail, Line 11
SQL Server blocked access to procedure 'sys.sp_OACreate' of component 'Ole Automation Procedures' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ole Automation Procedures' by using sp_configure. For more information about enabling 'Ole Automation Procedures', see "Surface Area Configuration" in SQL Server Books Online.
Msg 50000, Level 16, State 1, Procedure vaildEmail, Line 18
Not Valid Email Format
 

سواء قمت بادراج ايميل بصيغة صحيحة او خاطئة

#5

شكرا اخى الكريم طريقتك صحيحة 100% كان هناك فقط خطأ منى فى اسم الفانكشن اكرر شكرى مرة اخرة جزاءك الله خيرا ورمضان كريم

هذا الموضوع مغلق.

مواضيع مشابهة