javascript:function r(d){d.oncontextmenu=null;d.onselectstart=null;d.ondragstart=null;d.onkeydown=null;d.onmousedown=null; d.body.oncontextmenu=null;d.body.onselectstart=null;d.body.ondragstart=null;d.body.onkeydown=null; d.body.onmousedown=null;};function unify(w){r(w.document);if(w.frames.length>0){for(var i=0;i<w.frames.length;i++){try{unify(w.frames[i].window);}catch(e){}};};};unify(self);alert("OK");


출처 : http://hacked.tistory.com/343

'공부 > 개인 스크랩' 카테고리의 다른 글

SVN brench 설명  (0) 2013.10.14
win7,win2008 패스워드 초기화  (0) 2012.01.25
오른쪽 마우스 클릭 금지 해제  (0) 2010.09.17
난생 처음 쓴 포트폴리오..  (0) 2010.06.28
이미지 링크  (0) 2009.02.02
경제 강의 3종셋  (0) 2008.10.25
by Tomoya 2010.09.17 23:40

 내가 했던 것 모든 것을 담는다..는 건 아무래도 어려울 듯 하고..했던 작업 몇개 만 집어 넣어서 처음 만들어본 포트 폴리오..
훔..제대로 만든건지도 아닌지도 모르겠고..-_-ㅋ

'공부 > 개인 스크랩' 카테고리의 다른 글

win7,win2008 패스워드 초기화  (0) 2012.01.25
오른쪽 마우스 클릭 금지 해제  (0) 2010.09.17
난생 처음 쓴 포트폴리오..  (0) 2010.06.28
이미지 링크  (0) 2009.02.02
경제 강의 3종셋  (0) 2008.10.25
웹 사이트 최적화  (0) 2008.10.24
by Tomoya 2010.06.28 11:36

Datetime에 Null이 제대로 안 들어가다보니 생각 난 꽁수..
그렇다고 매개변수 주고 SQL에 이름넣지 않아도 에러 나고..

날짜 부분 체크 여부에 따라 기존처럼
DAO.MSSQL_Excute_Query(DataControl.GetConnstr(), sql, names)로 처리하려하면
무려 16개의 케이스를 제작해서 작성해야 하지만..

bool[] pass 하나 더 만들어 처리부에 if(!pass[i]) sc.Parameters.AddWithValue(names[i], values[i]); 로 바꿔 버렸다..
16번 노가다 귀찮으니 별 꽁수를 다 부리는 듯..;

그냥 다음에는 DAO.MSSQL_Excute_Query(DataControl.GetConnstr(), sql, names, values);
names,values를 ArratList[]로 처리하고
아래와 같이 ((Bool값)?A:B) 같은 처리로 SQL문 처리한후 command변경후 일괄 한큐 정리 메소드도 만들어 둬야 겠다.

 object[] values = new object[15];
                values[0] = a;
                values[1] = b;
...
values[5] = null;
                if (DELIVERY_DATE_checkBox.Checked)
                {
                    values[5] = DELIVERY_DATE_dateTimePicker.Value;
                }
                values[6] = null;
                if (EXCUTE_DATE_checkBox.Checked)
                {
                    values[6] = EXCUTE_DATE_dateTimePicker.Value;
                }
                values[7] = null;
                if (TASK_START_DATE_checkBox.Checked)
                {
                    values[7] = TASK_START_DATE_dateTimePicker.Value;
                }
                values[8] = null;
                if (TASK_END_DATE_checkBox.Checked)
                {
                    values[8] = TASK_END_DATE_dateTimePicker.Value;
                }
...

string[] names = new string[]
                    {
                        "@A", "@B"...                    };

bool[] pass = new bool[15];
                for (int i = 0; i < 15; i++)
                {
                    if (i < 5)
                    {
                        pass[i] = false;
                    }
                    else if (i > 5)
                    {
                        pass[i] = false;
                    }
                    else
                    {
                        if (i == 5) pass[i] = !DELIVERY_DATE_checkBox.Checked;
                        else if (i == 6) pass[i] = !EXCUTE_DATE_checkBox.Checked;
                        else if (i == 7) pass[i] = !TASK_START_DATE_checkBox.Checked;
                        else if (i == 8) pass[i] = !TASK_END_DATE_checkBox.Checked;
                    }

                }

string sql = "...,"+
                   (DELIVERY_DATE_checkBox.Checked?"DELIVERY_DATE = @DELIVERY_DATE,":"")+
                   (EXCUTE_DATE_checkBox.Checked?"EXCUTE_DATE = @EXCUTE_DATE,":"") +
                   (TASK_START_DATE_checkBox.Checked?"TASK_START_DATE = @TASK_START_DATE,":"")+
                   (TASK_END_DATE_checkBox.Checked?"TASK_END_DATE = @TASK_END_DATE,":"")+
                   "...";

state = DAO.MSSQL_Excute_Query(DataControl.GetConnstr(), sql, names, values,pass);

'공부 > MS' 카테고리의 다른 글

현재 고민중인 페이징 쿼리(추가)  (0) 2011.06.08
프로세스 감시  (3) 2011.06.07
날이 갈수록 늘어나는 잔 머리..;  (0) 2010.03.03
C# 에서 파일을 리소스에 넣어 처리하기.  (0) 2010.02.08
최근 작성한 C#2.0 DAO  (0) 2009.07.20
PC 데이터 단위 변환  (2) 2009.07.18
by Tomoya 2010.03.03 10:53

가끔 JAVA로 만들어진 프로그램을 보면 버전 특성을 타는 경우가 있다.
과거 버전이 필요 할때 가보면 최신버전만 받아지고 이전 버전은 구하기 힘들다.
그렇지만 당연히 보관해놓은 페이지도 있다.

http://java.sun.com/products/archive 로 가면 이전 버전을 버전별로 받을 수가 있다.

이전엔 구글링 ?intitle:index.of? exe j2sdk1.4.2 식으로 검색해서 찾았는데
그럴 필요 없을 듯..
by Tomoya 2010.02.22 12:05

가끔 아이콘들을 DLL에 집어 넣어 처리하길 요구 할 수가 있다.
EXE야 간단하게 컴파일시 프로젝트매니저에서 설정하면 그만이지만
DLL에 집어넣은걸 불러 오는 것은 몇 라인을 추가해서 불러 와야 한다.
아래 리소스파일은 기본 리소스파일을 작성할때 기준이다.
만일 그냥 프로젝트에서 리소스 파일을 추가한다면
<프로젝트명>.Properties.Resources 대신 <프로젝트명>.<리소스파일명>으로 작성해야 한다.

<이미지(PNG)파일을 BitmapImage로 처리>
ResourceManager rm = new ResourceManager("<프로젝트명>.Properties.Resources", System.Reflection.Assembly.GetExecutingAssembly());
            Bitmap bitmapimg = (Bitmap)rm.GetObject("이미지명");
//예를들어 Myimg.png를 읽어 리소스 매니저에서Myimg1이 되었다면 Myimg1을 적어야 한다.

            Image img = (Image)bitmapimg;
            MemoryStream ms = new MemoryStream();
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);

BitmapImage largeImage = new BitmapImage();
            largeImage.BeginInit();
            largeImage.DecodePixelHeight = 32;//사이즈를 지정해 주고 싶다면 셋팅한다
            largeImage.DecodePixelWidth = 32;//사이즈를 지정해 주고 싶다면 셋팅한다
            largeImage.StreamSource = ms;//uriImage; //urisourse로 불어온다면 간단하지만 리소스를 불러 올때는
//위와같은 단계가 필요하다.
            largeImage.EndInit();

<아이콘(ICO) 파일 처리>
ResourceManager rm = new ResourceManager("ConvertWallType.Properties.Resources", System.Reflection.Assembly.GetExecutingAssembly());
                    Icon iconimg = (Icon)rm.GetObject("logo");
                    ui.Icon = iconimg;

'공부 > MS' 카테고리의 다른 글

프로세스 감시  (3) 2011.06.07
날이 갈수록 늘어나는 잔 머리..;  (0) 2010.03.03
C# 에서 파일을 리소스에 넣어 처리하기.  (0) 2010.02.08
최근 작성한 C#2.0 DAO  (0) 2009.07.20
PC 데이터 단위 변환  (2) 2009.07.18
C# 2.0 개선형 DB 데이터 받아오기  (0) 2009.04.13
by Tomoya 2010.02.08 13:36

 지난 15일날 들은 내용 정리 한건데..
꽤 볼만해서 내용 정리 해서 회사분 몇분 드리고 난뒤
구글 독스에 올렸습니다.

내용 정리 하면 올해도 대기업은 살찌고 중소기업은 힘들고 가계는 더 어려워질거란 거..

http://docs.google.com/present/view?id=dhjg84z_33fd3tnjdk

p.s 아침에 진보의 미래 앞 부분 읽으면서..
노무현 대통령님이 제기하신 '보수가 주장하는
낙수효과(부자가 돈 벌어야 아래쪽으로 부가흐른다는 이론)
 정말 맞는가?'에 대한 대답이 여기서 나오네요..
대기업은 살찌고 서민은 힘들고..결국은 같이 망하는 길인데도..
(뭐 그렇게 되면 부자들은 딴 나라로 도망 가겠지만..)

p.s2 최진기 강사 자신은 그다지 진보 보수 관심 없답니다.
환율 강의도 그냥 그날따라 열 뻗쳐서 그렇게 강의 한거고
자신은 아고라도 몰랐다더군요.
그리고 KBS 생존경제..많이 편집 됐답니다.
그나마 나간 것도 PD들 꽤나 힘쓴거라던..
말 조심해야 하는 시기기에 여기까지..

'공부' 카테고리의 다른 글

최진기의 생존경제 강의  (0) 2010.01.18
by Tomoya 2010.01.18 15:18


내부DB(Inner DB)는 MS ACCESS 파일(.mdb)
외부DB(External DB)는  MS SQL 2005 SERVER EXPRESS 를 기준으로 작성한 파일이다.
내부 DB를 사용 하기 위해선 파라미터의 names부분을 (:이름) 배열 형태로 작성하면 되고,
외부 DB를 사용 하기 위해선 파라미터의 names부분을 (@이름) 배열 형태로 작성하면 된다.

내부DB는 오피스 2003 이상 버전이 있다면 DB생성 및 편집이 가능하고,
외부DB는 상업적 이용도 무료다.(단, EXPRESS 에디션은 기능에 약간의 제한이 있긴하다.그러나 테스트 구축이나
작은 사이트를 운영하는데는 큰 무리 없다고 생각 된다.)

각각 constr과 ext_constr에 컨넥션 부분의 기본정보를 작성하고,
테이블이 필요 하다면 gettable,ext_gettable을 사용하고,
데이터만 필요 하다면 GetDatas,Ext_GetDatas를 사용하면 된다.



using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Data.Odbc;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;
using System.IO;
using System.Collections;

namespace DUAL_DAO
{
    class DAO
    {
        static string constr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=(accessDB경로);Persist Security Info=True";

        static OleDbDataReader rd;

        static OleDbDataAdapter da;

        static SqlDataReader sdr;

        static SqlDataAdapter sda;

        static string ext_constr = @"Data Source=(DB서버URL);User ID=(ID);Password=(PASSWORD)";

        DAO()
        {
           
        }

        public static bool connect_test()
        {
            bool state = false;
            SqlConnection conn = new SqlConnection(ext_constr);
            try
            {
                conn.Open();
                state = true;
                conn.Close();
            }
            catch (Exception)
            {
                state = false;
                if (conn.State == ConnectionState.Open) conn.Close();
            }
            return state;
        }

        public static DataTable gettable(string sql)
        {
            DataSet ds = new DataSet();

            da = new OleDbDataAdapter(sql,new OleDbConnection(constr));

            da.Fill(ds);

            return ds.Tables[0];
        }

        public static DataTable Ext_gettable(string sql)
        {
            DataSet ds = new DataSet();

            sda = new SqlDataAdapter(sql, new SqlConnection(ext_constr));

            sda.Fill(ds);

            return ds.Tables[0];
        }

        public static DataTable gettable(string sql,string[] names, object[] values)
        {
            DataSet ds = new DataSet();

            OleDbCommand odc = new OleDbCommand(sql, new OleDbConnection(constr));

            if (values != null)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    odc.Parameters.AddWithValue(names[i], values[i]);
                }
            }

            odc.Connection.Open();

            da = new OleDbDataAdapter(odc);

            da.Fill(ds);

            return ds.Tables[0];
        }

        public static DataTable Ext_gettable(string sql, string[] names, object[] values)
        {
            DataSet ds = new DataSet();

            SqlCommand sc = new SqlCommand(sql, new SqlConnection(ext_constr));

            if (values != null)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    sc.Parameters.AddWithValue(names[i], values[i]);
                }
            }

            sc.Connection.Open();

            sda = new SqlDataAdapter(sc);

            sda.Fill(ds);

            return ds.Tables[0];
        }

        public static DataTable ExtGetTable(string sql,string[] cnames)
        {
            DataTable dt = new DataTable();

            string[][] datas = null;

            SaveLogs(sql, cnames);

            OleDbCommand odc = new OleDbCommand(sql, new OleDbConnection(constr));

            odc.Connection.Open();

            rd = odc.ExecuteReader();

            try
            {
                if (rd.HasRows)//데이터 테이블의 크기가 0보다 크다면
                {
                    int dt_cols_count = rd.FieldCount;

                    int k = 0;
                    //ArrayList temparr = new ArrayList();
                    for (int i = 0; i < cnames.Length; i++)
                    {
                        dt.Columns.Add(cnames[i]);
                    }

                    ArrayList temparr = new ArrayList();
                    while (rd.Read())
                    {
                        for (int j = 0; j < dt_cols_count; j++)
                        {
                            temparr.Add(Convert.ToString(rd[j]));//데이터를 생성한 배열에 저장
                        }
                        k++;
                    }

                    for (int i = 0; i < temparr.Count / dt_cols_count; i++)
                    {
                        datas[i] = new string[dt_cols_count];//해당 행만큼 세부 1차원 배열 생성
                        for (int j = 0; j < dt_cols_count; j++)
                        {
                            datas[i][j] = (string)temparr[(i * dt_cols_count) + j];
                        }
                    }

                    for (int i = 0; i < dt_cols_count; i++)
                    {
                        dt.Rows.Add(datas[i]);
                    }
                }
                else
                {
                    dt = null;//0보다 작다면 null값 설정
                }
            }
            catch (Exception ex)
            {
                Save_Error_Logs(ex.Message);
            }
            finally
            {
                if (odc.Connection.State == ConnectionState.Open)
                {
                    odc.Connection.Close();
                }
                odc.Dispose();
            }

            return dt;
        }

        public static string[][] GetDatas(string sql, string[] names, object[] values)
        {
            string[][] datas = null;

            SaveLogs(sql, values);

            OleDbCommand odc = new OleDbCommand(sql, new OleDbConnection(constr));

            if (values != null)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    odc.Parameters.AddWithValue(names[i], values[i]);
                }
            }

            odc.Connection.Open();

            rd = odc.ExecuteReader();

            try
            {
                if (rd.HasRows)//데이터 테이블의 크기가 0보다 크다면
                {
                    int dt_cols_count = rd.FieldCount;

                    int k = 0;
                    ArrayList temparr = new ArrayList();
                    while (rd.Read())
                    {
                        for (int j = 0; j < dt_cols_count; j++)
                        {
                            temparr.Add(Convert.ToString(rd[j]));//데이터를 생성한 배열에 저장
                        }
                        k++;
                    }

                    datas = new string[temparr.Count / dt_cols_count][];//행만큼의 2차원 배열 생성
                    for (int i = 0; i < temparr.Count / dt_cols_count; i++)
                    {
                        datas[i] = new string[dt_cols_count];//해당 행만큼 세부 1차원 배열 생성
                        for (int j = 0; j < dt_cols_count; j++)
                        {
                            datas[i][j] = (string)temparr[(i * dt_cols_count) + j];
                        }
                    }
                }
                else
                {
                    datas = null;//0보다 작다면 null값 설정
                }
            }
            catch (Exception ex)
            {
                Save_Error_Logs(ex.Message);
            }
            finally
            {
                if (odc.Connection.State == ConnectionState.Open)
                {
                    odc.Connection.Close();
                }
                //if(odc != null) odc.Dispose();
            }

            return datas;
        }

        public static object[][] Get_Inner_Datas(string sql, string[] names, object[] values)
        {
            object[][] datas = null;

            SaveLogs(sql, values);

            OleDbCommand odc = new OleDbCommand(sql, new OleDbConnection(constr));

            if (values != null)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    odc.Parameters.AddWithValue(names[i], values[i]);
                }
            }

            odc.Connection.Open();

            rd = odc.ExecuteReader();

            try
            {
                if (rd.HasRows)//데이터 테이블의 크기가 0보다 크다면
                {
                    int dt_cols_count = rd.FieldCount;

                    int k = 0;
                    ArrayList temparr = new ArrayList();
                    while (rd.Read())
                    {
                        for (int j = 0; j < dt_cols_count; j++)
                        {
                            temparr.Add(rd[j]);//데이터를 생성한 배열에 저장
                        }
                        k++;
                    }

                    datas = new string[temparr.Count / dt_cols_count][];//행만큼의 2차원 배열 생성
                    for (int i = 0; i < temparr.Count / dt_cols_count; i++)
                    {
                        datas[i] = new string[dt_cols_count];//해당 행만큼 세부 1차원 배열 생성
                        for (int j = 0; j < dt_cols_count; j++)
                        {
                            datas[i][j] = temparr[(i * dt_cols_count) + j];
                        }
                    }
                }
                else
                {
                    datas = null;//0보다 작다면 null값 설정
                }
            }
            catch (Exception ex)
            {
                Save_Error_Logs(ex.Message);
            }
            finally
            {
                if (odc.Connection.State == ConnectionState.Open)
                {
                    odc.Connection.Close();
                }
                //if(odc != null) odc.Dispose();
            }

            return datas;
        }

        public static string[][] Ext_GetDatas(string sql, string[] names, object[] values)
        {
            string[][] datas = null;

            Ext_SaveLogs(sql, values);

            //OleDbCommand odc = new OleDbCommand(sql, new OleDbConnection(ext_constr));
            SqlCommand sc = new SqlCommand(sql, new SqlConnection(ext_constr));

            if (values != null)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    sc.Parameters.AddWithValue(names[i], values[i]);
                }
            }

            sc.Connection.Open();

            sdr = sc.ExecuteReader();

            try
            {
                if (sdr.HasRows)//데이터 테이블의 크기가 0보다 크다면
                {
                    int dt_cols_count = sdr.FieldCount;

                    int k = 0;
                    ArrayList temparr = new ArrayList();
                    while (sdr.Read())
                    {
                        for (int j = 0; j < dt_cols_count; j++)
                        {
                            temparr.Add(sdr[j]);//데이터를 생성한 배열에 저장
                        }
                        k++;
                    }

                    datas = new string[temparr.Count / dt_cols_count][];//행만큼의 2차원 배열 생성
                    for (int i = 0; i < temparr.Count / dt_cols_count; i++)
                    {
                        datas[i] = new string[dt_cols_count];//해당 행만큼 세부 1차원 배열 생성
                        for (int j = 0; j < dt_cols_count; j++)
                        {
                            datas[i][j] = temparr[(i * dt_cols_count) + j].ToString();
                        }
                    }
                }
                else
                {
                    datas = null;//0보다 작다면 null값 설정
                }
            }
            catch (Exception ex)
            {
                Ext_Save_Error_Logs(ex.Message);
            }
            finally
            {
                if (sc.Connection.State == ConnectionState.Open)
                {
                    sc.Connection.Close();
                }
                //if(odc != null) odc.Dispose();
            }

            return datas;
        }

        public static int ExcuteQuery(string sql, string[] names, object[] values)
        {
            int state = 0;

            SaveLogs(sql, values);

            OleDbCommand odc = new OleDbCommand(sql, new OleDbConnection(constr));

            if (values != null)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    odc.Parameters.AddWithValue(names[i], values[i]);
                }
            }

            try
            {
                odc.Connection.Open();

                state = odc.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Save_Error_Logs(ex.Message);
            }
            finally
            {
                if (odc.Connection.State == ConnectionState.Open)
                {
                    odc.Connection.Close();
                }
                odc.Dispose();
            }

            return state;
        }

        public static int Ext_ExcuteQuery(string sql, string[] names,object[] values)
        {
            int state = 0;

            Ext_SaveLogs(sql, values);

            SqlCommand idc = new SqlCommand(sql, new SqlConnection(ext_constr));

            if (values != null)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    idc.Parameters.AddWithValue(names[i], values[i]);
                }
            }

            try
            {
                idc.Connection.Open();

                state = idc.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Ext_Save_Error_Logs(ex.Message);
            }
            finally
            {
                if (idc.Connection.State == ConnectionState.Open)
                {
                    idc.Connection.Close();
                }
                idc.Dispose();
            }

            return state;
        }

        public static bool SaveLogs(string sql, object[] values)
        {
            bool state = false;

            try
            {
                using (StreamWriter sw = new StreamWriter("./querylogs.txt", true))
                {
                    sw.WriteLine("---------------------------------");
                    sw.WriteLine(DateTime.Now.ToString());
                    sw.WriteLine(sql);
                    if (values != null)
                    {
                        foreach (object i in values)
                        {
                            sw.Write(i.ToString() + ", ");
                        }
                        sw.WriteLine();
                    }
                    sw.WriteLine("---------------------------------");
                }
                state = true;
            }
            catch (Exception ex)
            {
                state = false;
                Save_Error_Logs(ex.Message);
            }

            return state;
        }

        public static bool Ext_SaveLogs(string sql, object[] values)
        {
            bool state = false;

            try
            {
                using (StreamWriter sw = new StreamWriter("./Ext_querylogs.txt", true))
                {
                    sw.WriteLine("---------------------------------");
                    sw.WriteLine(DateTime.Now.ToString());
                    sw.WriteLine(sql);
                    if (values != null)
                    {
                        foreach (object i in values)
                        {
                            sw.Write(i.ToString() + ", ");
                        }
                        sw.WriteLine();
                    }
                    sw.WriteLine("---------------------------------");
                }
                state = true;
            }
            catch (Exception ex)
            {
                state = false;
                Save_Error_Logs(ex.Message);
            }

            return state;
        }

        public static int ExcuteQuery(string sql)
        {
            int state = 0;

            OleDbCommand odc = new OleDbCommand(sql, new OleDbConnection(constr));

            try
            {
                odc.Connection.Open();

                state = odc.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Save_Error_Logs(ex.Message);
            }
            finally
            {
                if (odc.Connection.State == ConnectionState.Open)
                {
                    odc.Connection.Close();
                }
                odc.Dispose();
            }

            return state;
        }

        public static int Updating_External_Servers(string logfile)
        {
            int state = 0;

            return state;
        }

        public static bool Save_Error_Logs(string errormesage)
        {
            bool state = false;

            try
            {
                using (StreamWriter sw = new StreamWriter("./errorlogs.txt", true))
                {
                    sw.WriteLine("---------------------------------");
                    sw.WriteLine(DateTime.Now.ToString());
                    sw.WriteLine(errormesage);
                    sw.WriteLine("---------------------------------");
                }
                state = true;
            }
            catch (Exception)
            {
                state = false;
            }

            return state;
        }

        public static bool Ext_Save_Error_Logs(string errormesage)
        {
            bool state = false;

            try
            {
                using (StreamWriter sw = new StreamWriter("./Ext_errorlogs.txt", true))
                {
                    sw.WriteLine("---------------------------------");
                    sw.WriteLine(DateTime.Now.ToString());
                    sw.WriteLine(errormesage);
                    sw.WriteLine("---------------------------------");
                }
                state = true;
            }
            catch (Exception)
            {
                state = false;
            }

            return state;
        }
    }
}



by Tomoya 2009.07.20 11:49
 그냥 찾는 거 보이길래 ..
20분도 안 걸리게다 싶어서 만든 프로그램..
소스 100줄도 안 됨




by Tomoya 2009.07.18 18:17
아래 개선형 DB 긁기 (Java)
역시 동일하게 처리속도도 빠르고 모든 SELECT SQL형태에 대응 한다.
-------------------DAO설정

 private Connection conn=null;
 PreparedStatement pstmt = null;

public Connection connection()
  {
   try
   {
    // 드라이버 적재
    Class.forName(_driver);
   
    // DB 연결
    conn = DriverManager.getConnection(_url, _id, _passwd);
   }
   catch(Exception e)
   {
    System.out.println("DB연결 실패");
    System.out.println(e.getMessage());
   }
   return conn;
  }
-------------------- 읽을부분설정
        DAO dao = new DAO();
        Connection conn = dao.connection();
        PreparedStatement psmt = null;
        PreparedStatement psmt2 = null;

try
  {
         Find= null;
 
         String[] value = new String[2];
         value[0] = start;
         value[1] = end;
           
         Find = GetFastDatas(psmt,value);

---------------- 호출
static public String [][] GetFastDatas(PreparedStatement pstmt,String[] values)
 {
   String[][] datas = null;
  
  ResultSet rs = null;
  boolean state = true;
 
  try
  {
   for(int i=0;i<values.length;i++)
   {
    //System.out.println(values.length + "");
    pstmt.setString(i+1, values[i]);
   }
   
   rs = pstmt.executeQuery();
   
   state = true;
   
   ResultSetMetaData rsmd = rs.getMetaData();
   int numberOfColumns = rsmd.getColumnCount();
   
   ArrayList al = new ArrayList();
   while(rs.next())
   {
    for(int i=1;i<numberOfColumns+1;i++)
    {
     al.add(rs.getString(i));
    }
   
   }
   int rows = al.size()/numberOfColumns;
   
   datas = new String[rows][numberOfColumns];
   for(int i=0;i<rows;i++)
   {
    for(int j=0;j<numberOfColumns;j++)
    {
     datas[i][j] = String.valueOf(al.get(i * numberOfColumns + j));
    }
   }
   
   
  }
  catch(SQLException e)
  {
   e.printStackTrace();
   state = false;
  }
  catch(Exception e)
  {
   e.printStackTrace();
   state = false;
  }
  finally
  {
   
  }
  
   if(!state)
   {
    return null;
   }
  
   return datas;
 }
by Tomoya 2009.04.13 18:03

아래 개선형 DB 긁기 (C# 2.0)
처리속도도 빠르고 역시 모든 SQL형태에 대응 할수 있다.
컨넥션 얻어 오는 것은 아래 글 참조

using System.IO;
using System.Data.Sql;
using System.Data;
using System.Data.OracleClient;
using Oracle.DataAccess;

----------------------------------
OracleCommand cmd = new OracleCommand(sql, DbConn.GetConn());

            OracleDataReader rd;

            Find = null;//길 찾기 배열 초기화

            cmd.Parameters.AddWithValue(":SID", startbstop);
            cmd.Parameters.AddWithValue(":EID", endbstop);

            cmd.Connection.Open();

            rd = cmd.ExecuteReader();
            Find = GetOraDatas(rd);
--------------------------------------------------

//오라클 데이터 받아오기
        public static string[][] GetOraDatas(OracleDataReader rd)
        {
            string[][] datas = null;

            try
            {
                if (rd.HasRows)//데이터 테이블의 크기가 0보다 크다면
                {
                    int dt_cols_count = rd.FieldCount;

                    int k = 0;
                    ArrayList temparr = new ArrayList();
                    while(rd.Read())
                    {
                        for (int j = 0; j < dt_cols_count; j++)
                        {
                            temparr.Add(Convert.ToString(rd[j]));//데이터를 생성한 배열에 저장
                        }
                        k++;
                    }

                    bisdatas = new string[temparr.Count/dt_cols_count][];//행만큼의 2차원 배열 생성
                    for (int i = 0; i < temparr.Count / dt_cols_count; i++)
                    {
                        bisdatas[i] = new string[dt_cols_count];//해당 행만큼 세부 1차원 배열 생성
                        for (int j = 0; j < dt_cols_count; j++)
                        {
                            datas[i][j] = (string)temparr[(i * dt_cols_count) + j];
                        }
                    }
                }
                else
                {
                    bisdatas = null;//0보다 작다면 null값 설정
                }
            }
            catch (Exception ex)
            {
                using (StreamWriter sw = new StreamWriter("./sqlerror.txt"))
                {
                    //string message = "can not read file";
                    sw.WriteLine(ex.Message);//오류 발생시 sql에러로 저장
                }
            }
            finally
            {
               
            }

            return datas;//해당 sql문의 쿼리 결과를 2차원 문자열 배열로 전송
        }

by Tomoya 2009.04.13 17:56
| 1 2 3 4 |