달력

32024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

호스팅업체에 웹호스팅이랑 mysql 을 서비스 받고있는데

 

외부에서 호스팅 DB 를 끌어다가 사용하고 싶을대가 있습니다.

 

고민고민 하다가 찾아봤는데 어떤사람인진 모르겠지만

 

만들어놓고 블로그 올려놨으면서 압축 비번 걸어놓고 비번은 모르쇠 -_-

 

그래서 만들어봄

 

먼저 JSON 으로 주고 받는식으로 만든거라 컴파일시에 DLL 포함시키게 하면은

 

exe 단일 파일료 사용이 가능해서 밑에 내용처럼 따라 하시면됩니다.

 

그리고 json 을 쉽게 사용하기 위해서 dataset 으로 변환 시키서 사용하게 해놓았습니다.

 

필요한건 뽑아 쓰셔도 됩니다.

 

 

[Program.cs 소스]

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Reflection;
using System.Windows.Forms;

namespace sample
{
    static class Program
    {
        /// <summary>
        /// 해당 응용 프로그램의 주 진입점입니다.
        /// </summary>
        [STAThread]
        static void Main()
        {
            // 리로스 dll 취득
            AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ResolveAssembly);

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }

        // 리소스 dll 취득

        static Assembly ResolveAssembly(object sender, ResolveEventArgs args)
        {
            Assembly thisAssembly = Assembly.GetExecutingAssembly();
            var name = args.Name.Substring(0, args.Name.IndexOf(',')) + ".dll";
            var resources = thisAssembly.GetManifestResourceNames().Where(s => s.EndsWith(name));
            if (resources.Count() > 0)
            {
                var resourceName = resources.First();
                using (Stream stream = thisAssembly.GetManifestResourceStream(resourceName))
                {
                    if (stream == null) return null;
                    var block = new byte[stream.Length];
                    stream.Read(block, 0, block.Length);
                    return Assembly.Load(block);
                }
            }
            return null;
        }

    }
}

 

Program.cs 에다가 위 내용 양식에 맞춰서 넣어주고

 

 

솔루션 탐색기에서 필요한 dll 폴더나 파일로 불러와준후에

 

 

이렇게 해주면됨 간단하죠?

 

zip 파일을 다운받아서 압축풀면 php하고 cs 파일이 있음

 

cs 파일을 사용할땐 namespace 를 맞춰주고 사용하길

 

 

C# 웹호스팅 MYSQL API.zip

 

 

php 파일은 호스팅 임의 경로에 맞춰 주시고

 

cs 파일을 열어보시면

 

private string api_url = @"http://localhost/mysql.api.php";  부분이 있음 해당경로를 맞춰 주시면 됩니다.

 

 

사용법은 cs파일 안이 적혀 있습니다.

 

 

정상적으로 SELECT, INSERT, UPDATE, DELETE 전부 되는걸 확인했네요 이제 꽁냥꽁냥 만들기만 남았네요

 

다들 잘사용하세요

 

ps. 필요한사람있을진 모르겠지만 0-0

 


 

'Dev Language > C#' 카테고리의 다른 글

C# AES128 암호화 복호화 소스  (0) 2018.10.11
AES, SHA 암호화 3, C#  (0) 2017.03.30
윈도우 플랫폼 체크  (0) 2015.12.31
Mac Address Changer(맥 어드레스 변경)  (0) 2015.12.30
.NET Decompile (닷텟 디컴파일)  (0) 2015.06.04
Posted by 타카스 류지
|

MSSQL 쿼리를 MYSQL 로 만들어 수정해보았고 이걸 다시 ORACLE 용으로 변경해보았다..

 

좋네..ㅎ

 

 

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

 

오라클 초성 검색 펑션

 

 

CREATE OR REPLACE
FUNCTION FN_GET_CHOSUNG (STR IN  VARCHAR2)
RETURN VARCHAR2 IS
/******************************************************************************
   NAME        : FN_GET_CHOSUNG
   STR         : 홍길동
   RETURN      : ㅎㄱㄷ
******************************************************************************/

I INT;
J INT;
TMPSTR VARCHAR2(255);
COL1 VARCHAR2(2);

BEGIN
 I := LENGTH(STR);
 J := 1;
 TMPSTR := '';

 WHILE J <= I LOOP
  COL1 := SUBSTR(STR, J, 1);
  TMPSTR := TMPSTR ||
    (
      CASE WHEN COL1 < 'ㄱ' THEN COL1 
      WHEN ascii('ㄱ') <= ascii(COL1) and 
         ascii(COL1)<= ascii('ㅎ') THEN COL1 
      WHEN COL1 < '까' THEN 'ㄱ'
      WHEN COL1 < '나' THEN 'ㄲ'
      WHEN COL1 < '다' THEN 'ㄴ'
      WHEN COL1 < '따' THEN 'ㄷ'
      WHEN COL1 < '라' THEN 'ㄸ'
      WHEN COL1 < '마' THEN 'ㄹ'
      WHEN COL1 < '바' THEN 'ㅁ'
      WHEN COL1 < '빠' THEN 'ㅂ'
      WHEN COL1 < '사' THEN 'ㅃ'
      WHEN COL1 < '싸' THEN 'ㅅ'
      WHEN COL1 < '아' THEN 'ㅆ'
      WHEN COL1 < '자' THEN 'ㅇ'
      WHEN COL1 < '짜' THEN 'ㅈ'
      WHEN COL1 < '차' THEN 'ㅉ'
      WHEN COL1 < '카' THEN 'ㅊ'
      WHEN COL1 < '타' THEN 'ㅋ'
      WHEN COL1 < '파' THEN 'ㅌ'
      WHEN COL1 < '하' THEN 'ㅍ'
      ELSE 'ㅎ'
      END
   );
  J := J + 1;
 END LOOP;

 RETURN TMPSTR;
END;
----------------------------------------------------------------------------

 

 

MYSQL

 

CREATE FUNCTION `chosung`(STR VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
    DETERMINISTIC
BEGIN
 DECLARE I INT;
 DECLARE J INT;
 DECLARE TMPSTR VARCHAR(255);
 DECLARE COL1 VARCHAR(2);

 SET I = char_length(STR);
 SET J = 1;
 SET TMPSTR = '';
  WHILE J <=I  DO
    SET COL1 = SUBSTRING(STR, J, 1);
  SET TMPSTR = CONCAT(TMPSTR,(
                       CASE WHEN COL1 < 'ㄱ' THEN COL1 
                       WHEN ascii('ㄱ') <= ascii(COL1) and 
                              ascii(COL1)<= ascii('ㅎ') THEN COL1 
                       WHEN COL1 < '까' THEN 'ㄱ'
                       WHEN COL1 < '나' THEN 'ㄲ'
                       WHEN COL1 < '다' THEN 'ㄴ'
                       WHEN COL1 < '따' THEN 'ㄷ'
                       WHEN COL1 < '라' THEN 'ㄸ'
                       WHEN COL1 < '마' THEN 'ㄹ'
                       WHEN COL1 < '바' THEN 'ㅁ'
                       WHEN COL1 < '빠' THEN 'ㅂ'
                       WHEN COL1 < '사' THEN 'ㅃ'
                       WHEN COL1 < '싸' THEN 'ㅅ'
                       WHEN COL1 < '아' THEN 'ㅆ'
                       WHEN COL1 < '자' THEN 'ㅇ'
                       WHEN COL1 < '짜' THEN 'ㅈ'
                       WHEN COL1 < '차' THEN 'ㅉ'
                       WHEN COL1 < '카' THEN 'ㅊ'
                       WHEN COL1 < '타' THEN 'ㅋ'
                       WHEN COL1 < '파' THEN 'ㅌ'
                       WHEN COL1 < '하' THEN 'ㅍ'
                       WHEN COL1 <= '힣' THEN 'ㅎ'
                       ELSE COL1
                       END
         ));
      SET J = J + 1 ;
  END WHILE;
  RETURN TMPSTR;
END

 

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

 

 

 

 

 

MYSQL : http://cjbox.tistory.com/111

'Database > ORACLE' 카테고리의 다른 글

ORACLE - 최근 실행 쿼리 확인하기  (0) 2020.07.30
oracle LISTAGG 사용하기  (0) 2016.04.28
세션 킬(Session Kill)  (0) 2015.02.24
패키지 생성 암호화 CRYPTO  (0) 2015.02.24
oracle 외부접속  (0) 2015.02.24
Posted by 타카스 류지
|

네비게이션 검색을 보면 초성 검색을 하는것을 보고 자료를 찾아보던 중 mssql 로 만든 펑션을 보고 mysql 버전으로 수정하였다.

 

검색시 like 로 검색을 하면은 참 용이하게 쓸거같다.

 

쿼리 : select chosung("메인보드(atx)")

 

결과 : ㅁㅇㅂㄷ(atx)

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

MYSQL

 

CREATE FUNCTION `chosung`(STR VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
    DETERMINISTIC
BEGIN
 DECLARE I INT;
 DECLARE J INT;
 DECLARE TMPSTR VARCHAR(255);
 DECLARE COL1 VARCHAR(2);

 SET I = char_length(STR);
 SET J = 1;
 SET TMPSTR = '';
  WHILE J <=I  DO
    SET COL1 = SUBSTRING(STR, J, 1);
  SET TMPSTR = CONCAT(TMPSTR,(
                       CASE WHEN COL1 < 'ㄱ' THEN COL1 
                       WHEN ascii('ㄱ') <= ascii(COL1) and 
                              ascii(COL1)<= ascii('ㅎ') THEN COL1 
                       WHEN COL1 < '까' THEN 'ㄱ'
                       WHEN COL1 < '나' THEN 'ㄲ'
                       WHEN COL1 < '다' THEN 'ㄴ'
                       WHEN COL1 < '따' THEN 'ㄷ'
                       WHEN COL1 < '라' THEN 'ㄸ'
                       WHEN COL1 < '마' THEN 'ㄹ'
                       WHEN COL1 < '바' THEN 'ㅁ'
                       WHEN COL1 < '빠' THEN 'ㅂ'
                       WHEN COL1 < '사' THEN 'ㅃ'
                       WHEN COL1 < '싸' THEN 'ㅅ'
                       WHEN COL1 < '아' THEN 'ㅆ'
                       WHEN COL1 < '자' THEN 'ㅇ'
                       WHEN COL1 < '짜' THEN 'ㅈ'
                       WHEN COL1 < '차' THEN 'ㅉ'
                       WHEN COL1 < '카' THEN 'ㅊ'
                       WHEN COL1 < '타' THEN 'ㅋ'
                       WHEN COL1 < '파' THEN 'ㅌ'
                       WHEN COL1 < '하' THEN 'ㅍ'
                       WHEN COL1 <= '힣' THEN 'ㅎ'
                       ELSE COL1
                       END
         ));
      SET J = J + 1 ;
  END WHILE;
  RETURN TMPSTR;
END

 

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

 

MSSQL 원본

 

-- 한글인 경우, 자음 추출

-- 한글이 아닌 경우 그대로 출력

CREATE FUNCTION Parse_Str(@STR VARCHAR(255))

RETURNS VARCHAR(255)

AS

BEGIN

 

DECLARE @I INT, @J INT, @TMPSTR VARCHAR(255), @COL1 VARCHAR(2)

SET @I = LEN(@STR)

 

SET @J = 1

SET @TMPSTR = ''

 

        WHILE (@J<=@I)

        BEGIN

               SELECT @COL1 = SUBSTRING(@STR, @J, 1)               

       

               SET @TMPSTR = @TMPSTR +

                       CASE WHEN @COL1 < '' THEN @COL1

                       WHEN ascii('') <= ascii(@COL1) and

                              ascii(@COL1)<= ascii('') THEN @COL1

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 < '' THEN ''

                       WHEN @COL1 <= '' THEN ''

                       ELSE  @COL1

                       END

       

               SET @J = @J + 1

       

        END

RETURN(@TMPSTR)

END

GO

 

 

 

CREATE TABLE [good_table] (

  [good_cd]  [varchar] (13)  COLLATE Korean_Wansung_CI_AS NOT NULL ,

  [good_knm] [varchar] (100)  COLLATE Korean_Wansung_CI_AS NULL,

  [good_knm_sep] varchar(255) NULL -- 자음 추출한 데이터가 저장

 ) ON [PRIMARY]

GO

 

CREATE INDEX IDX__knm_sep ON good_table(good_knm_sep)

GO

 

CREATE TRIGGER TRG_GOOD_TABLE

ON GOOD_TABLE

FOR INSERT, UPDATE

AS

BEGIN

        UPDATE A

        SET good_knm_sep = dbo.Parse_Str(B.good_knm)

        FROM good_table A JOIN Inserted B ON A.good_cd = B.good_cd

END

GO

 

 

--)  '삼성파브' 입력시

INSERT GOOD_TABLE(good_cd, good_knm) VALUES ('12345','삼성파브')

GO

 

SELECT * FROM GOOD_TABLE

/*

good_cd         good_knm       good_knm_sep

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

12345          삼성파브        ㅅㅅㅍㅂ

 

(1 적용됨)

*/

 

 

 

 

'Database > MYSQL' 카테고리의 다른 글

mysql root 패스워드 분실시  (0) 2019.02.22
MYSQL 접속 프로그램  (0) 2016.02.24
MYSQL DB 덤프 방법  (0) 2010.12.07
Posted by 타카스 류지
|