<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=Sql_script_converter</id>
	<title>Sql script converter - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=Sql_script_converter"/>
	<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=Sql_script_converter&amp;action=history"/>
	<updated>2026-04-04T07:39:05Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=Sql_script_converter&amp;diff=44&amp;oldid=prev</id>
		<title>Devcafe: 새 문서: &lt;source lang=python&gt; # -*- coding: utf-8 -*-  import sys, string from PyQt4 import QtGui, QtCore  class Window(QtGui.QMainWindow):     def __init__(self):         super(Window, self).__init__()         #self.setGeometry(400, 20, 1200, 800)         self.setFixedSize(1200, 800)         self.setWindowTitle(&quot;SQL Script Converter&quot;)         self.setWindowIcon(QtGui.QIcon(&quot;c:\sqlscriptconverter/img/pythonlogo.png&quot;))         QtGui.QApplication.setStyle(&quot;Cleanlooks&quot;)          font = self...</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=Sql_script_converter&amp;diff=44&amp;oldid=prev"/>
		<updated>2024-10-04T15:29:43Z</updated>

		<summary type="html">&lt;p&gt;새 문서: &amp;lt;source lang=python&amp;gt; # -*- coding: utf-8 -*-  import sys, string from PyQt4 import QtGui, QtCore  class Window(QtGui.QMainWindow):     def __init__(self):         super(Window, self).__init__()         #self.setGeometry(400, 20, 1200, 800)         self.setFixedSize(1200, 800)         self.setWindowTitle(&amp;quot;SQL Script Converter&amp;quot;)         self.setWindowIcon(QtGui.QIcon(&amp;quot;c:\sqlscriptconverter/img/pythonlogo.png&amp;quot;))         QtGui.QApplication.setStyle(&amp;quot;Cleanlooks&amp;quot;)          font = self...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import sys, string&lt;br /&gt;
from PyQt4 import QtGui, QtCore&lt;br /&gt;
&lt;br /&gt;
class Window(QtGui.QMainWindow):&lt;br /&gt;
    def __init__(self):&lt;br /&gt;
        super(Window, self).__init__()&lt;br /&gt;
        #self.setGeometry(400, 20, 1200, 800)&lt;br /&gt;
        self.setFixedSize(1200, 800)&lt;br /&gt;
        self.setWindowTitle(&amp;quot;SQL Script Converter&amp;quot;)&lt;br /&gt;
        self.setWindowIcon(QtGui.QIcon(&amp;quot;c:\sqlscriptconverter/img/pythonlogo.png&amp;quot;))&lt;br /&gt;
        QtGui.QApplication.setStyle(&amp;quot;Cleanlooks&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        font = self.font()                                           # set font&lt;br /&gt;
        font.setFamily(&amp;quot;GulimChe&amp;quot;)&lt;br /&gt;
        font.setPointSize(10)&lt;br /&gt;
        self.setFont(font)&lt;br /&gt;
&lt;br /&gt;
        self.statusBar()                                             # set statusbar&lt;br /&gt;
&lt;br /&gt;
        self.vListcount = 0                                          # set user variables&lt;br /&gt;
        self.vEditchanged = False&lt;br /&gt;
        self.vSQLScript = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        # -- create listwidget objects ------------------------------&lt;br /&gt;
        self.tListwidget = QtGui.QListWidget(self)                   # set listwidget&lt;br /&gt;
        self.tListwidget.setGeometry(QtCore.QRect(30, 66, 220, 650))&lt;br /&gt;
        self.tListwidget.setFont(font)                               # set font of listwidget&lt;br /&gt;
&lt;br /&gt;
        self.tListwidget.setStatusTip(&amp;quot;This is a QlistWidget object.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        # -- open file and add item ---------------------------------&lt;br /&gt;
        tInitfile = open(&amp;#039;c:\sqlscriptconverter\convertlist.ini&amp;#039;, &amp;#039;r&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
        while True:&lt;br /&gt;
            vInitfile = tInitfile.readline()                         # no more line, return &amp;quot;None&amp;quot;&lt;br /&gt;
            if not vInitfile:&lt;br /&gt;
                break&lt;br /&gt;
            self.tListwidget.addItem(vInitfile.replace(&amp;quot;\n&amp;quot;, &amp;quot;&amp;quot;))    # add list item&lt;br /&gt;
&lt;br /&gt;
        tInitfile.close()&lt;br /&gt;
&lt;br /&gt;
        # -- create button objects ----------------------------------&lt;br /&gt;
        tButtonClear = QtGui.QPushButton(&amp;quot;Clear&amp;quot;, self)              # set clear button&lt;br /&gt;
        tButtonClear.clicked.connect(self.on_button_clear)&lt;br /&gt;
        tButtonClear.resize(100, 22)&lt;br /&gt;
        tButtonClear.move(30, 22)&lt;br /&gt;
        tButtonClear.setStatusTip(&amp;quot;Clear text on the window.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        tButtonConvert = QtGui.QPushButton(&amp;quot;Convert(F5)&amp;quot;, self)      # set convert button&lt;br /&gt;
        tButtonConvert.clicked.connect(self.on_button_convert)&lt;br /&gt;
        tButtonConvert.resize(100, 22)&lt;br /&gt;
        tButtonConvert.move(150, 22)&lt;br /&gt;
        tButtonConvert.setStatusTip(&amp;quot;Convert your scripts on a rule basis. &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        tButtonExit = QtGui.QPushButton(&amp;quot;Exit&amp;quot;, self)                # set exit button&lt;br /&gt;
        tButtonExit.clicked.connect(QtCore.QCoreApplication.instance().quit)&lt;br /&gt;
        tButtonExit.resize(100, 22)&lt;br /&gt;
        tButtonExit.move(1070, 22)&lt;br /&gt;
        tButtonExit.setStatusTip(&amp;quot;Quit this application.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        # -- create textedit objects -------------------------------&lt;br /&gt;
        self.tTextedit = QtGui.QTextEdit(self)                       # set textedit box&lt;br /&gt;
        self.tTextedit.move(270, 66)&lt;br /&gt;
        self.tTextedit.resize(900, 650)&lt;br /&gt;
&lt;br /&gt;
        self.tTextedit.textChanged.connect(self.on_text_changed)&lt;br /&gt;
        self.tTextedit.setStatusTip(&amp;quot;You can paste your script here and convert it.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        # -- create progressbar objects -----------------------------&lt;br /&gt;
        self.tProgress = QtGui.QProgressBar(self)                    # set progressbar&lt;br /&gt;
        self.tProgress.setGeometry(30, 734, 1130, 20)&lt;br /&gt;
&lt;br /&gt;
        self.on_load_sql()&lt;br /&gt;
&lt;br /&gt;
    def on_load_sql(self):                                           # set initiate loading&lt;br /&gt;
        self.vSQLfile = open(&amp;#039;c:\sqlscriptconverter\sql.ini&amp;#039;, &amp;#039;r&amp;#039;)&lt;br /&gt;
        self.vSQLread = self.vSQLfile.read()&lt;br /&gt;
&lt;br /&gt;
        self.tTextedit.setText(self.vSQLread)&lt;br /&gt;
&lt;br /&gt;
        self.vSQLfile.close()&lt;br /&gt;
&lt;br /&gt;
    def on_text_changed(self):&lt;br /&gt;
        self.vEditchanged = True&lt;br /&gt;
&lt;br /&gt;
    def on_button_clear(self):                                       # set action of clear button&lt;br /&gt;
        self.vEditchanged = False&lt;br /&gt;
        self.vSQLScript = &amp;quot;&amp;quot;&lt;br /&gt;
        #self.on_load_sql()&lt;br /&gt;
        self.tTextedit.clear()&lt;br /&gt;
        self.tProgress.setValue(0)&lt;br /&gt;
&lt;br /&gt;
    def keyPressEvent(self, e):                                      # system method for F-Key&lt;br /&gt;
        if e.key() == QtCore.Qt.Key_F5:&lt;br /&gt;
            self.on_button_convert()&lt;br /&gt;
&lt;br /&gt;
    def on_button_convert(self):                                     # set actioni of vconvert button&lt;br /&gt;
        vKey1 = &amp;quot;&amp;quot;                                                   # 변환될 단어 할당(ex. select)&lt;br /&gt;
        vKey2 = &amp;quot;&amp;quot;                                                   # 변환할 단어 할당(ex. SELECT)&lt;br /&gt;
        vKeylist      = [&amp;quot;\n&amp;quot;, &amp;quot;\t&amp;quot;, &amp;quot;(&amp;quot;, &amp;quot; &amp;quot;, &amp;quot;;&amp;quot;, &amp;quot;,&amp;quot;, &amp;quot;)&amp;quot;]        # 변환 단어 + 리스트 결합&lt;br /&gt;
        vKeylistcount = len(vKeylist)                                # 리스트 개수 저장&lt;br /&gt;
        vLoop = 0                                                    # 프로그래스바를 위한 Loop 카운팅&lt;br /&gt;
&lt;br /&gt;
        self.vListcount = self.tListwidget.count()&lt;br /&gt;
        self.vSQLScript = self.tTextedit.toPlainText()&lt;br /&gt;
&lt;br /&gt;
        vBarrate = 100. / (self.vListcount * vKeylistcount)&lt;br /&gt;
&lt;br /&gt;
        for i in range(1, self.vListcount + 1):&lt;br /&gt;
            vKey1 = self.tListwidget.item(i-1).text()&lt;br /&gt;
            vKey2 = str(vKey1).upper()&lt;br /&gt;
&lt;br /&gt;
            for j in range(1, vKeylistcount + 1):&lt;br /&gt;
                vLoop += 1&lt;br /&gt;
                vSQL1 = vKey1 + vKeylist[j - 1]&lt;br /&gt;
                vSQL2 = vKey2 + vKeylist[j - 1]&lt;br /&gt;
&lt;br /&gt;
                self.vSQLScript = string.replace(self.vSQLScript, vSQL1, vSQL2)&lt;br /&gt;
                self.tProgress.setValue(vBarrate * vLoop)&lt;br /&gt;
&lt;br /&gt;
        # -- 불용어 역전환&lt;br /&gt;
        xKey = [&amp;quot;skey&amp;quot;, &amp;quot;wkey&amp;quot;, &amp;quot;fkey&amp;quot;, &amp;quot;tkey&amp;quot;, &amp;quot;account&amp;quot;, &amp;quot;quotas&amp;quot;, &amp;quot;_key&amp;quot;, &amp;quot;.ref&amp;quot;, &amp;quot;_ref&amp;quot;, &amp;quot;gkey&amp;quot;, &amp;quot;dateend&amp;quot;]&lt;br /&gt;
        for xxKey in xKey:&lt;br /&gt;
            self.vSQLScript = string.replace(self.vSQLScript, xxKey, xxKey.lower())&lt;br /&gt;
&lt;br /&gt;
        self.tTextedit.setText(self.vSQLScript)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    app = QtGui.QApplication(sys.argv)&lt;br /&gt;
    gui = Window()&lt;br /&gt;
    gui.show()&lt;br /&gt;
    sys.exit(app.exec_())&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[category:python]]&lt;/div&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
</feed>