MySQL, PostgreSQL, SQLite 각 컬럼의 Type차이 기록

Database
인터넷 검색을 통해서 제가 습득한 지식 기반이여서 정확하지 않음을 미리 알려드립니다. MySQL PostgreSQL SQLite TINYINT SMALLINT INTEGER SMALLINT SMALLINT MEDIUMINT INTEGER BIGINT BIGINT BIT BIT INTEGER _______________________________________________________ TINYINT UNSIGNED SMALLINT INTEGER SMALLINT UNSIGNED INTEGER MEDIUMINT UNSIGNED INTEGER INT UNSIGNED BIGINT BIGINT UNSIGNED NUMERIC(20) _______________________________________________________ DOUBLE DOUBLE PRECISION REAL FLOAT REAL REAL DECIMAL DECIMAL REAL NUMERIC NUMERIC REAL _______________________________________________________ BOOLEAN BOOLEAN INTEGER _______________________________________________________ DATE DATE TEXT TIME TIME DATETIME TIMESTAMP _______________________________________________________ TIMESTAMP DEFAULT TIMESTAMP DEFAULT TEXT NOW() NOW() _______________________________________________________ LONGTEXT TEXT TEXT MEDIUMTEXT TEXT TEXT BLOB BYTEA BLOB VARCHAR VARCHAR TEXT CHAR CHAR TEXT _______________________________________________________ columnname INT columnname SERIAL INTEGER PRIMARY AUTO_INCREMENT KEY AUTOINCREMENT
Read More

SQLite Table 비우기, 및 AutoIncrement 초기화

Database
SQLite는 가볍게 사용할 수 있지만 다른 DBMS에서 사용된느 Truncate 명령어가 없습니다. 그래서 모든 내용을 지우려면은 Delete로 지워야하기에 기록해 놓습니다. #SQLite TRUNCATE TABLE DELETE FROM TABLE_NAME; SQLite에서 AutoIncrement를 초기화가 되지 않습니다. 그래서 Delete후에 새롭게 값을 초기화해서 보기 좋도록(?) 하기 위해서 작업을 합니다. #SQLite Auto Increment Reset UPDATE SQLITE_SEQUENCE SET seq = 0 WHERE name = 'TABLE_NAME';
Read More

[PHP] 2차원 배열 정렬

PHP
DB에서 결과값을 가져올때 OrderBy를 할 수 있으면 더없이 좋지만 피치못할 상정으로 Query문을 수정할수가 없는 경우가 생깁니다. 이럴경우에 이미 만들어진 결과 값을 사용자에게 보여주기 전에 정렬를 해서 결과를 보여 주면 될것 같습니다. foreach ((array) $result as $key => $value) { $sort[$key] = $value['objNumber']; // 정렬를 위한 키값 } array_multisort($sort, SORT_DESC, $result); //array_multisort($sort, SORT_ASC, $result); 최근에 위 정렬 방법으로 정렬을 함으로 인해서 기존의 코드를 수정하지 않고 결과를 재정렬해서 보여줄수 있도록 해 본적이 있습니다.
Read More

Devexpress spilt panel 감추기

CSharp
// 패널 감추기 if (xtraTabControl1.SelectedTabPage == xtraTabPage1) { splitContainerControl2.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2; splitContainerControl2.SetPanelCollapsed(true); splitContainerControl2.Panel2.Visible = false; } else { splitContainerControl2.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2; splitContainerControl2.SetPanelCollapsed(false); splitContainerControl2.Panel2.Visible = true; }
Read More

FileWatch

CSharp
private void initWatcher() { string EqpDirPath = @"C:\TEST\"; FileSystemWatcher watcher = new FileSystemWatcher(); //1. FileSystemWatcher 생성자 호출 watcher.Path = EqpDirPath; //2. 감시할 폴더 설정(디렉토리) // 3. 감시할 항목들 설정 (파일 생성, 크기, 이름., 마지막 접근 변경등..) watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.Size | NotifyFilters.LastAccess | NotifyFilters.CreationTime | NotifyFilters.LastWrite; //감시할 파일 유형 선택 예) *.* 모든 파일 watcher.Filter = "*.*"; // watcher.IncludeSubdirectories = true; // 4. 감시할 이벤트 설정 (생성, 변경..) watcher.Created += new FileSystemEventHandler(Changed); watcher.Changed += new FileSystemEventHandler(Changed); watcher.Renamed += new RenamedEventHandler(Renamed); // 5. FIleSystemWatcher 감시 모니터링 활성화 watcher.EnableRaisingEvents = true; } // 6. 감시할 폴더 내부 변경시 event 호출 private void Changed(object source, FileSystemEventArgs e) { MessageBox.Show(e.FullPath); } private void Renamed(object source, RenamedEventArgs e) { MessageBox.Show(e.FullPath); }
Read More
[C#] [Build] 빌드시 EXE 에 DLL 포함 시키기

[C#] [Build] 빌드시 EXE 에 DLL 포함 시키기

CSharp
VS에서 빌드시에 참조 리소스등 DLL등을 별도로 포함을 해야 하는데, 보기보다 이작업이 상당히 귀찮은 작업니다. 물론 인스톨러를 사용하면은 간단하지만 단일 파일로 배포를 할 경우에 여러가지 파일이 있으면 사람들이 싫어 하는 편입니다. 그래서 EXE파일을 빌드 할 경우에 리소소를 포함 시켜서 배포를 하면은 사용하는 사람도 편하고 배포 하는 사람도 편하다는 생각에 기록을 남깁니다. nuget에서 Costura.Fody를 검색하신후에 설치하시면 자동으로 빌드시에 DLL등이 EXE 파일에 포함되어 집니다. nuget에서 캡쳐함 이미지
Read More

[C#] WinForm 시스템 메뉴에 나만의 메뉴 추가하기

CSharp
using System; using System.Windows.Forms; using System.Runtime.InteropServices; namespace CaptionTimetableSupporet { public partial class MainForm : Form { // P/Invoke constants private const int WM_SYSCOMMAND = 0x112; private const int MF_STRING = 0x0; private const int MF_SEPARATOR = 0x800; // P/Invoke declarations [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern bool AppendMenu(IntPtr hMenu, int uFlags, int uIDNewItem, string lpNewItem); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern bool InsertMenu(IntPtr hMenu, int uPosition, int uFlags, int uIDNewItem, string lpNewItem); // ID for the About item on the system menu private int SYSMENU_ABOUT_ID = 0x1; protected override void OnHandleCreated(EventArgs e) { base.OnHandleCreated(e); // Get a handle to a copy of this form's system (window) menu…
Read More

[C#] Environment 를 통해 시스템 정보, OS 버전알아오기

CSharp
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // 현재 작업 디렉터리의 정규화된 경로를 가져오거나 설정합니다. txtWindowCode.Text += "@ 디렉토리 경로 : " + Environment.CurrentDirectory + "\r\n"; // 프로세스의 종료 코드를 가져오거나 설정합니다. txtWindowCode.Text += "@ 프로세스종료코드 : " + Environment.ExitCode + "\r\n"; // 이 로컬 컴퓨터의 NetBIOS 이름을 가져옵니다. txtWindowCode.Text += "@ NetBIOS 이름 : " + Environment.MachineName + "\r\n"; // OSVersion txtWindowCode.Text += "@ OSVersion : " + Environment.OSVersion.ToString() + "\r\n"; // 시스템 디렉터리의 정규화된 경로를 가져옵니다. txtWindowCode.Text += "@ 시스템디렉토리 : " + Environment.SystemDirectory + "\r\n"; // 시스템 시작 이후 경과 시간(밀리초)을 가져옵니다. txtWindowCode.Text +=…
Read More

[C#] 윈도우 OS 정보 얻기

CSharp
OperatingSystem os = System.Environment.OSVersion; Console.WriteLine("플랫폼 : " + os.Platform); Console.WriteLine("서비스팩 : " + os.ServicePack); Console.WriteLine("버전 : " + os.Version); Console.WriteLine("버전 : " + os.Version); Console.WriteLine("버전 문자열 : " + os.VersionString); Console.WriteLine("CLR버전 : " + System.Environment.Version); Console.ReadLine(); // 콘솔에서 확인할수 있도록 잠시 멈춤 사용자의 정보를 획득해야 될 일이 있을 경우에 위 기능을 사용해서 처리 할 수 있습니다.
Read More

[C/C++] 시간표시

프로그램
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <time.h> int main() { time_t timer; struct tm* t; timer = time(NULL); // 현재 시각을 초 단위로 얻기 t = localtime(&timer); // 초 단위의 시간을 분리하여 구조체에 넣기 printf("%d", t->tm_year + 1900); //현재 년 printf("%d", t->tm_mon + 1); //현재 월 printf("%d", t->tm_mday); //현재 일 printf("%d:", t->tm_hour); //현재 시 printf("%d:", t->tm_min); //현재 분 printf("%d", t->tm_sec); //현재 초 }
Read More

[C#] Picturebox를 투명하게

CSharp
LicenseLabel.Parent = pictureBox1; LicenseLabel.BackColor = Color.Transparent; LicenseLabel.BringToFront(); LicenseLabel.BackColor = Color.Transparent; LicenseLabel.Width = this.Width; LicenseLabel.Left = 0; LicenseLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; LicenseLabel.Parent = pictureBox1;
Read More

[C#] WebBrowser version 변경

CSharp
Program.cs 에서 다음을 사용하도록 합니다. using System.Runtime.InteropServices; using Microsoft.Win32; 레지스트리에 세팅하고 값이 정상적인지 체크하도록 하는 함수 입니다. private static void SetIEVersioneKeyforWebBrowserControl(string appName, int ieval) { string RegKeyPath = ""; RegistryKey Regkey = null; try { // x86, x64 구분 if (Environment.Is64BitProcess) { RegKeyPath = @"SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"; } else { RegKeyPath = @"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"; } // try { Regkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(RegKeyPath, true); } catch (Exception ex) { Console.WriteLine(" 관리자 권한이 아니여서 접근이 불가능 합니다."); } finally { // 레지스트리의 값을 체크 if (Regkey == null) { // 찾지 못할 경우 그냥 PASS } else { // 실행 프로세스가 등록되어 있는지 값을 가져오기 string FindAppkey = Convert.ToString(Regkey.GetValue(appName)); // 이미 세팅 되어 있을 경우 if (FindAppkey == ieval.ToString()) { Regkey.Close(); } else { // 값 세팅하기 Regkey.SetValue(appName, unchecked((int)ieval), RegistryValueKind.DWord); //check for the key…
Read More

[C#] 폰트 설치 여부 체크해서 설정 도와주기

CSharp
class FontLibraryClass { public class FontLibrary { private string FontsFolder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Fonts); private static FontLibrary inst = new FontLibrary(); public PrivateFontCollection privateFont = new PrivateFontCollection(); /// <summary> /// /// </summary> public static FontFamily[] Families { get { return inst.privateFont.Families; } } /// <summary> /// /// </summary> public FontLibrary() { AddFontFromNanumgothic(); } /// <summary> /// 리소스에 포함된 폰트 파일을 로딩 /// </summary> private void AddFontFromMemory() { /* List<byte[]> fonts = new List<byte[]>(); fonts.Add(Properties.Resources.NanumGothic); fonts.Add(Properties.Resources.NanumGothicBold); foreach (byte[] FontData in fonts) { IntPtr fontBuffer = Marshal.AllocCoTaskMem(FontData.Length); Marshal.Copy(FontData, 0, fontBuffer, FontData.Length); privateFont.AddMemoryFont(fontBuffer, FontData.Length); } */ } /// <summary> /// 폰트 파일을 추가함. /// </summary> private void AddFontFromNanumgothic() { privateFont.AddFontFile(FontsFolder + @"\\NANUMGOTHIC.TTF"); } } /// <summary> /// 폰트 존재 여부 체크 /// </summary> public void FontInstallCheck() { bool FontInstallBoolNanum = false; // FontFamily[] fonts =…
Read More