آموزش بکاپ گیری و بازگردانی بکاپ نرم افزار بیمه تامین اجتماعی

سلام این آموزش در ویندوز ۷ به بالا برای نرم افزار list desk نسخه ۲٫۷ تست شده است

اگر میخواهید ویندزو را عوض کنید یا تصمیم به گرفتن بکاپ دارید (اصلا از منوهای داخل برنامه در بخش پشتیبانی استفاده نکنید ) به آموزش زیر توجه کنید

نرم افزار list desk تامین اجتماعی بعد از نصب در محل درایو ویندوز یک پوشه database دارد که اگر به تاریخ modify فایل های درون آن دقت شود همه مروبط به تاریخ قدیم هستند الان ۲۰۱۸ هستیم و آخرین نسخه نرم افزار ۲٫۷ است و فایل های درون پوشه database متعلق به سال ۲۰۱۲ می باشد. پس معلوم است اطلاعات اصلی جای دیگری است و این پوشه عملا موقت و بی استفاده است.

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

نکته پوشه AppData مخفی است

C:\Users\USER\AppData\Local\VirtualStore\Program Files (x86)\Tamin\DataBase

در مسیر بالا USER معادل نام کاربرویندوز است .

و برای انتقال اطلاعات به سیستم جدید فایل های کپی شده در مسیر بالا را معادل همین مسیر بعد از نصب نرم افزار listdisk کپی کنید.

سریع روش دریافت بزرگترین تاریخ یک کاربر در mysql


SELECT  * FROM users
WHERE user_id = 2 AND created_at = (SELECT max(created_at) FROM users where user_id = 2)

روش دوم با استفاده از join


select t2.* from mlm_reagent_history as t1
INNER JOIN (SELECT max(created_at) lastDate FROM  mlm_reagent_history where user_id = 2) as t2 on (t1.created_at = t2.lastDate and t1.user_id = 2 )

روش سوم

SELECT * FROM user_log where user_id = 1 order by date_at DESC limit 1

نیمه لیوان خالی را ببین

همیشه در زندگی به ما گفتند که نیمه پر لیوان را ببین تا همیشه امیدوار باشی … اما به نظر من اگر در برنامه نویسی نیمه خالی لیوان دیده شود بهتر است چون دانش بی انتها نیمه خالی آن از زمین تا آسمان است نه به اندازه ارتفاع یک لیوان…

بدست آوردن ایتم های ناموجود در ستون دوم در اکسل

  • ستون که قرار است در آن جستجو شود را انتخاب میکنید
  • مثلا ستون A سپس ستون D را معادل لیستی که باید در ستون A جستجو شود در نظر گرفت
  • و در ستون b1 دستور زیر را وارد کردم

=VLOOKUP(A1;$D$1:$D$4;1;0)

دستور فوق یعنی از ستون A1 تا D1 و D4 را جستجو کن که آیا موجود است ؟

  • و ستون B1 را تا آخرین ستون معادل A کپی کنید

با استفاده از دستور vlookup میتوان یک مقدار را در ستون دوم بدست آورد و با دستور isna موارد N/A را true میکند

=ISNA(VLOOKUP(A1;$D$1:$D$4;1;0))

جهت رنگی کردن با روش rule با انتخاب بازه در ستون اول (که قرار است در آن جستجو شود) و رفتن به قسمت conditional formatting و در منو new rule دستور فوق را وارد نموده و formatting را باید مشخص کرد.

=ISNA(VLOOKUP(A1;$D$1:$D$48;1;0))

https://www.excel-exercise.com/compare-2-columns/

افزودن کلید index به یک ستون در mysql

برای اینکه سرعت query ها بالاتر برود لازم است که هر آنچه که قرار است در

where – order by – group by – join استفاده شود را کلید قرار دهید . اما یک نکته در مورد کلید ها وجود دارد اگر کلید از نوع primary باشد امکان تکرار آن در یک جدول نیست اما میتوان کلید را از نوع index قرار داد با دستور

ALTER TABLE invoice ADD INDEX (user_id)

دستور فوق در جدول invoice ستون user_id را به کلید index تبدیل میکند

مشکل در import Trigger ها در mysql

در صورتی که دیتابیس حاوی trigger باشد و در محیط mysql workbench از آن export گرفته شود با خطای زیر مواجه میشود

ERROR 1227 (42000) at line 374: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

برای حل این مشکل کافی است در کنار پوشه ای که فایل sql مورد نظر قرار دارد برنامه git bash را باز کنید و دستور زیر را اجرا کنید

sed ‘s/\sDEFINER=`[^`]*`@`[^`]*`//g’ -i oldfile.sql

https://stackoverflow.com/a/44015870/4406856

join جدول با یک فیلد با مقدار جداشده با کاما

به طور مثال یک جدول مانند زیر می باشد

Positions Table

╔══════════╦═════════════════╗
║ id       ║    name         ║
╠══════════╬═════════════════╣
║ 1        ║ Executive       ║
║ 2        ║ Corp Admin      ║
║ 3        ║ Sales           ║
║ 4        ║ Art             ║
║ 5        ║ Marketing       ║
╚══════════╩═════════════════╝

و در جدول دوم به صورت زیر اطلاعات ذخیره شده است

Notes Table

╔══════════╦═════════════════╗
║ nid      ║    forDepts     ║
╠══════════╬═════════════════╣
║ 1        ║ 1,2,4           ║
║ 2        ║ 4,5             ║
╚══════════╩═════════════════╝

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

    ╠══════════╬════════════════════════════╣
    ║ 1        ║ Executive, Corp Admin, Art ║
    ║ 2        ║ Art, Marketing             ║
    ╚══════════╩════════════════════════════╝

جهت انجام این کار مطابق قطع کد زیر میتوان join بین دو جدول بدست آورد

 
SELECT  a.nid,
        GROUP_CONCAT(DISTINCT b.name ORDER BY b.id) DepartmentName
FROM    Notes a
        INNER JOIN Positions b
            ON FIND_IN_SET(b.id, a.forDepts) > 0
GROUP   BY a.nid
 

منبع https://stackoverflow.com/a/19101646/4406856

کار با json در mysql 5.7

جهت دریافت اطلاعات یک مقدار json باید از روش زیر استفاده کرد

SELECT detail->"$.mobile" as mobile FROM users

دستور فوق در جدول users ها شماره موبایل در ستون detail نمایش بدست می آورد

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

SELECT detail->>"$.mobile" as mobile FROM users 

به روزرسانی یک فیلد خاص در json

مثلا میخواهید که یک فیلد خاص را به json اضافه کنید یا اگر موجود است آن را به روز کنید از دستور زیر استفاده شود

 

 UPDATE users SET detail = JSON_SET(detail,"$.gender", "1");