7
خواندن در 3 دقیقه

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

متن پیامک اسنپ: “خبر خوب اسنپ برای کاربران iOS: اپلیکیشن اسنپ در اپ‌ استور منتشر شد، اما به دلیل تحریم‌ های شرکت اپل، این بار با ظاهری متفاوت. همین حالا از لینک زیر نسخه دائمی اسنپ را برای همیشه دانلود کنید، سپس یک سفر با ۵۰درصد تخفیف (تا سقف ۶هزار تومان) بروید.
کد تخفیف: iOS-60
اعتبار تا ۷بهمن”

لینک نسخه iOS اپلیکیشن اسنپ: https://apps.apple.com/us/app/radickradio/id1493709500

ترفند نسخه iOS اسنپ

ترفندی که به نظر می رسد برای اپلیکیشن ios اسنپ در این ریلیز استفاده کرده است تلفیق دو اپلیکشین در یک اپ می باشد. در فرآیند ثبت اپلیکیشن در اپ استور، شرکت اپل تمام اپلیکیشن ها را قبل از قرار دادن در اپ استور چک می کند. با توجه به اینکه معمولا اپ های هر زبان توسط افرادی که به آن زبان آشنایی دارند چک می شود در نتیجه اپ اسنپ نیز از این قاعده مستثنی نخواهد بود.

لوگوی اسنپ

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

نرم افزار اپل اسنپ اپلیکیشن اپل اسنپ

ثبت اپلیکیشن در اپ استور

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

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

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

ترفند ثبت اپ ایرانی در اپ استور

در تصویر زیر کامنت های این اپلیکیشن گویای این موارد است.

اپ iOS اسنپ

 

8
خواندن در 2 دقیقه

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

پیدا کردن یک عبارت در کل دیتابیس

می توانید این کد را بصورت یک Stored Procedure تعریف کنید و در زمان های مورد نیاز از آن استفاده کنید. این دستور مکان دقیق عبارت مورد نظر شما را در ۲ ستون بصورت جدول و ستون نمایش می دهد.

کافی است کلمه مورد نظر را در @SearchStr و بجای wordSearch قرار دهید. با اجرای این قطعه کد نتیجه را مشاهده خواهید نمود.

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

DECLARE @SearchStr nvarchar(100)
SET @SearchStr = 'wordSearch'


CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET  @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

WHILE @TableName IS NOT NULL

BEGIN
    SET @ColumnName = ''
    SET @TableName =
    (
        SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
        FROM     INFORMATION_SCHEMA.TABLES
        WHERE         TABLE_TYPE = 'BASE TABLE'
            AND    QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
            AND    OBJECTPROPERTY(
                    OBJECT_ID(
                        QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                         ), 'IsMSShipped'
                           ) = 0
    )

    WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
        
    BEGIN
        SET @ColumnName =
        (
            SELECT MIN(QUOTENAME(COLUMN_NAME))
            FROM     INFORMATION_SCHEMA.COLUMNS
            WHERE         TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                AND    TABLE_NAME    = PARSENAME(@TableName, 1)
                AND    DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'int', 'decimal')
                AND    QUOTENAME(COLUMN_NAME) > @ColumnName
        )

        IF @ColumnName IS NOT NULL
        
        BEGIN
            INSERT INTO #Results
            EXEC
            (
                'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) FROM ' + @TableName + ' (NOLOCK) ' +
                ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
            )
        END
    END  
END

SELECT ColumnName, ColumnValue FROM #Results

DROP TABLE #Results

 

7
خواندن در 2 دقیقه

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

پیدا کردن یک ستون در دیتابیس

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

یافتن یک ستون در دیتابیس

پیدا کردن فیلد در دیتابیس

چگونه یک ستون را از بین کل جدول های یک دیتابیس پیدا کنیم؟

هنگامی که جداول دیتابیس زیاد می شود یا اینکه یک دیتابیس را بصورت Open Source از جایی می گیرید لازم است که بدانید یک فیلد یا یک ستون از جدول Sql در چه جدول هایی وجود دارد. اگر بخواهید به روش معمول پیدا کنید باید تک تک جدول ها را باز کنید که ببیند آیا این فیلد در آن جدول وجود دارد و یا خیر؟

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

SELECT
	c.name AS ColName,
	t.name AS TableName
FROM sys.columns c
    JOIN sys.tables t ON c.object_id = t.object_id
WHERE
	c.name LIKE '%ColumnName%'