نمایش نتایج 1 تا 16 از 16

نام تاپیک: آموزش اصلاح کلمات عربی در دیتابیس

  1. #1

    آموزش اصلاح کلمات عربی در دیتابیس

    سلام خدمت دوستان.
    برای اینکه یک بار برای همیشه این مشکل رفع بشه براتون یک پروسیجر نوشتم که کافیه اون رو در دیتابیستون ران کنید.
    این استور پروسیجر رو ران کنید و سپس در یک نیو کوئری بنویسید:
    Exec ChangeCodePage

    همین!

    سوالی بود در خدمتم.
    فایل های ضمیمه فایل های ضمیمه
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  2. #2

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

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

  3. #3

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    این فایل در اس کیو ال ران می شه.
    در ویژوال استودیو می تونید با اجرا کردن کامند Exec ChangeCodePage کاراکتر های تمام جداول رو اصلاح کنید.
    دقت کنید که این روش درمان هست نه پیشگیری. برای از این به بعدتون باید هنگام اینسرت مدیریت کنید که کدوم کاراکتر ها جایگزین بشند.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  4. #4
    کاربر تازه وارد آواتار محمدجواد67
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    تهران
    پست
    81

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    نقل قول نوشته شده توسط You-See مشاهده تاپیک
    سلام خدمت دوستان.
    برای اینکه یک بار برای همیشه این مشکل رفع بشه براتون یک پروسیجر نوشتم که کافیه اون رو در دیتابیستون ران کنید.
    این استور پروسیجر رو ران کنید و سپس در یک نیو کوئری بنویسید:
    Exec ChangeCodePage

    همین!

    سوالی بود در خدمتم.
    سلام دیگه احتیاجی نیست نام table ها رو عوض کرد

  5. #5

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    سلام. نمی دونم منظورتون از اصلاح نام جدول چیه، نیازی به کار اضافی نداره.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  6. #6

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    سلام،
    جناب یوسف من stored procedure اتان را مشاهده کردم. کار خوبی بود. چند نکته به نظرم رسید که میخوام به اطلاع شما برسانم. اگر نقد و بررسی بود در خدمتم.
    مساله که وجود داره این هست که شما تمام سطرهای یک جدول را بروز رسانی می کنید یعنی حتی سطرهایی که نیاز به بروز رسانی ندارند را نیز بروز رسانی می کنید. فرض کنید 100 هزار داده داریم که فقط 1 هزار تای آنها نیاز به بروز رسانی دارند در اینجا ما 99 هزار سطر دیگر که لزومی به بروز رسانی نداشته اند را درگیر کردیم.
    برای رفع این مساله بایستی WHERE را به دستور UPDATE اضافه کنیم چیزی شبیه به این:
    select @x = 
    ' update [' + TblName + ']
    set [' + ColName + '] = Replace( Replace( Replace([' + ColName + '], nchar(1603), nchar(1705)), nchar(1610), nchar(1740)), nchar(1609), nchar(1740))
    where charindex(nchar(1603),[' + ColName + '])>0 or charindex(nchar(1610),[' + ColName + '])>0 or charindex(nchar(1609),[' + ColName + '])>0;

    '
    from


    و سوالی که از شما دارم این است که دلیل خاصی دارد که شما update ها را دانه به دانه اجرا میکنید. مثلا چه error هایی پیش بینی کردین که ممکنه در حین اجرای update رخ دهد؟

    پیشنهاد دیگری که دارم این هست که شما اگر به ازای هر جدول فقط یک دستور update داشتید بهتر بود. فرض کنید یک جدول دارای 5 فیلد از نوع رشته ای است طبق روال شما این جدول 5 دفعه بروز رسانی میشه اما میشه کاری کرد که فقط یکبار آن دستور اجرا می شد... البته امکان پیاده سازی این موضوع برمی گرده به سوال قبل.
    وبلاگ من (Advanced SQL Querying)

  7. #7

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    این پروسیجر برمی گرده به خیلی قبل، احتمال بهینه نبودنش زیاده اما کار راه اندازه.
    اون لیست ارور ها رو هم برای بررسی گذاشته بودم ببینم چه ارور هایی احتمال داره بوجود بیاد که براش بعد تر هندلینگ درستی نوشت، وگرنه حرف شما درسته.
    می شه خیلی سریعتر کار کرد و بهینه تر نوشت.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  8. #8

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    اوه، راست میگین این تاپیک مال سال 90 من فکر میکردم مربوط به تازگی هاست.
    وبلاگ من (Advanced SQL Querying)

  9. #9

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    سلام. با اینکه خیلی وقت از این تاپیک میگذره ولی تقاضا دارم که دوستان گرامی آقایان نسخه بهینه شده این SP که در گفتگوهاشون مطرح شده، بازنویسی کنند.

    با تشکر.

  10. #10

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    نسخه بهینه شده که الان نوشتم:




    CREATE PROCEDURE ChangeCodePageNew
    @TableName VARCHAR(100)
    AS


    DECLARE @ColHolder CHAR(1) = '@'
    DECLARE @Replace VARCHAR(4000) = 'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(R EPLACE(REPLACE([' + @ColHolder + '], NCHAR(1571), NCHAR(1575)), NCHAR(1573), NCHAR(1575)), NCHAR(1609), NCHAR(1610)), NCHAR(1746), NCHAR(1610)), NCHAR(1574), NCHAR(1610)), NCHAR(1572), NCHAR(1608)), NCHAR(1729), NCHAR(1607)), NCHAR(1603), NCHAR(1705))'
    DECLARE @X VARCHAR(MAX) = ''


    ;WITH CTE AS (
    SELECT A.name TBL, B.name COL
    FROM sys.tables A
    JOIN sys.columns B ON A.object_id = B.object_id and ISNULL(@TableName, '') IN ('', A.name)
    JOIN sys.types C ON B.system_type_id = C.system_type_id AND C.name IN ('char', 'nchar', 'varchar', 'nvarchar')
    )


    SELECT @X +=
    'update ' + TBL + CHAR(13)
    + 'set' + CHAR(13)
    + SUBSTRING(
    (
    SELECT ', ' + COL + ' = ' + REPLACE(@Replace, @ColHolder, COL)
    FROM CTE Y
    WHERE X.TBL = Y.TBL
    FOR XML PATH('')
    ), 2, 1000000) + CHAR(13)
    + CHAR(13)
    FROM CTE X
    GROUP BY TBL


    EXEC(@X)




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

    پ.ن:
    ویرایشگر نادون این سایت بعضی جاها فاصله می ندازه، در هنگام کپی، حواستون باشه!
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  11. #11

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    از زحمات شما تشکر می کنم.

  12. #12
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    تشکر از آقای زالی عزیز
    بسیار عالی

    این کد شما به بهترین شکل ممکن مشکل ما رو حل کرد

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

    با این کد با یک کلیک همه دیتابیس اصلاح میشه.

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

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

    باز هم ممنون
    آخرین ویرایش به وسیله rahmatipoor : چهارشنبه 26 اردیبهشت 1397 در 15:43 عصر

  13. #13
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    با اجازه از استاد زالی عزیز با استفاده از آموزش خیلی خوبشون یک پروژه سی شارپ تهیه کردم که به صورت اتوماتیک و با یک کلیک استور پروسیجر موردنظر رو روی دیتابیس موردنظر ایجاد میکنه ، بعدش اجرا میشه و در نهایت اون رو حذف میکنه.

    فقط باید توی کلاس clsAccessData توی خط اول ( رشته ConStr ) رشته اتصال خودتون رو جایگزین کنید.

    string ConStr = @"Data Source=.\InstanceName; database = DataBaseName ; Integrated Security=True";





    [/CSHARP]


    از دات نت بار 2 هم استفاده شده که dll اون توی مسیر bin توی پروژه هست و توی پروژه های خودتون باید به رفرنسهاتون اضافه بشه.

    لینک دانلود پروژه
    آخرین ویرایش به وسیله rahmatipoor : پنج شنبه 27 اردیبهشت 1397 در 10:47 صبح

  14. #14
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    --------------------------------------

  15. #15
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

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

    فقط باید توی کلاس clsAccessData توی خط اول ( رشته ConStr ) رشته اتصال خودتون رو جایگزین کنید.

    string ConStr = @"Data Source=.\InstanceName; database = DataBaseName ; Integrated Security=True";





    [/CSHARP]


    از دات نت بار 2 هم استفاده شده که dll اون توی مسیر bin توی پروژه هست و توی پروژه های خودتون باید به رفرنسهاتون اضافه بشه.

    لینک دانلود پروژه
    با سلام
    کار خوب و جالبی انجام دادید هر چند که ندیدمش ولی طبق توضیحات خوبه
    برای بهتر شدن برنامتون میتونید لینک Connection یا نام دیتابیس و سرور رو از کاربر بگیرید و تبدیل رو انجام بدید اینطور نیازی نیست که کاربر وارد سورس بشه (ویژوال داشته باشه)
    اگر وقت شد شاید خودم اصلاحش کنم
    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  16. #16
    کاربر دائمی آواتار rahmatipoor
    تاریخ عضویت
    شهریور 1392
    محل زندگی
    ---
    پست
    418

    نقل قول: آموزش اصلاح کلمات عربی در دیتابیس

    ممنون شما لطف دارید

    بله قطعا اگه اینطوری باشه خیلی بهتره

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •