'assql'에 해당되는 글 1건

  1. 2008.09.03 [Flex] ActionScript3 MySQL Driver(asSQL) Beta2.7을 이용한 간단예제. (58)
 
저번에 Beta2예제가 새로운 버전에서 안돌아가는 바람에 다시 만들었습니다-_-;
많은 분들이 안돌아간다고 하셔서 다시 만들었습니다 ㅠ
형식이 조금 바뀌었는데, 별 차이는 없었습니다.
더 편해진 것 같아요. 토큰이라는 것을 이용하네요.

http://code.google.com/p/assql/
다양한 예제와 lib파일은 이곳에서 받을 수 있습니다.

간단하게 insert와 select를 하는 예제를 만들어봤습니다.
테스트 해본 환경은 Eclpse3.4 + Flex Builder 3.0.1 + asSQL Beta 2.7에서 해봤습니다.

DB구조는 다음과 같습니다.
[code]
CREATE TABLE `products` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `description` varchar(45) default NULL,
  `price` decimal(15,2) NOT NULL default '0.00',
  PRIMARY KEY  USING BTREE (`id`,`price`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

INSERT INTO `products` (`id`,`description`,`price`) VALUES
 (1,'Lamp','469.80'),
 (2,'Table','3502.62'),
 (3,'Chair','1061.12');
[/code]

아래는 소스코드입니다.
[code]
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    creationComplete="onCreationComplete()"
    layout="horizontal">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import com.maclema.mysql.ResultSet;
            import com.maclema.mysql.MySqlToken;
            import com.maclema.mysql.Statement;
            import com.maclema.mysql.Connection;
            import com.maclema.mysql.events.MySqlErrorEvent;
            import mx.rpc.AsyncResponder;
            import mx.controls.Alert;
           
            private var con:Connection;
            private var st:Statement;
            private var token:MySqlToken;
            [Bindable]
            private var dataAC:ArrayCollection;
           
            private function onCreationComplete():void
            {
                con = new Connection("DB주소", 3306, "DB아이디", "DB비밀번호", "DB명");
                con.addEventListener(Event.CONNECT, handleConnected);
                con.connect("euckr");
            }
           
            private function handleConnected(e:Event):void
            {
                if (con != null)
                {
                    st = con.createStatement();
                }
            }
           
            private function selectResult(data:Object, token:Object):void
            {
                var rs:ResultSet = ResultSet(data);
                dataAC = rs.getRows();                               
            }
           
            private function insertResult(data:Object, token:Object):void
            {
                Alert.show(token.description + " 삽입성공!");
                selectProcess();
                insertBox.visible = false;
            }
           
            private function fault(info:Object, token:Object):void
            {
                Alert.show("Error: " + info);   
            }
           
            private function selectProcess():void
            {
                var token:MySqlToken = st.executeQuery(
                    "SELECT id, description, price FROM products");
                token.addResponder(new AsyncResponder(selectResult, fault));   
            }
           
            private function insertProcess():void
            {
                st.sql = "INSERT INTO products (description, price) VALUES (?, ?)";
                st.setString(1, inputDescription.text);
                st.setNumber(2, Number(inputPrice.text));
                var token:MySqlToken = st.executeQuery();
                token.description = inputDescription.text;
                token.addResponder(new AsyncResponder(insertResult, fault, token));
            }
        ]]>
    </mx:Script>
   
    <mx:VBox horizontalAlign="center">
        <mx:DataGrid id="productDG" dataProvider="{dataAC}">
            <mx:columns>
                <mx:DataGridColumn headerText="ID" dataField="id"/>
                <mx:DataGridColumn headerText="제품명" dataField="description"/>
                <mx:DataGridColumn headerText="가격" dataField="price"/>
            </mx:columns>
        </mx:DataGrid>
       
        <mx:HBox width="100%" horizontalAlign="center">
            <mx:Button label="SELECT" id="btnSelect"
                click="insertBox.visible = false; selectProcess()"/>
            <mx:Button label="INSERT" id="btnInsert"
                click="insertBox.visible = true"/>
        </mx:HBox>
       
        <mx:VBox id="insertBox" height="100%" horizontalAlign="center" visible="false">
            <mx:Form>
                <mx:FormHeading label="정보 입력" />
                <mx:FormItem label="제품명">
                    <mx:TextInput id="inputDescription" />
                </mx:FormItem>
                <mx:FormItem label="가격">
                    <mx:TextInput id="inputPrice" restrict="0-9,."/>
                </mx:FormItem>
            </mx:Form>
            <mx:Button id="btnInsertProcess" label="추가" click="insertProcess()" />
        </mx:VBox>
       
    </mx:VBox>
       
</mx:Application>
[/code]
좀 이상한 점이 con.connect("euckr")로 해야지 한글이 나오더군요. mysql에서 utf8에는 한글이 없는건가.
어쨌든 인코딩은 어려워요 ㅠ

Connection이라는 클래스를 통해 mysql정보를 이용해 con객체를 생성한다음에 Statement를 생성합니다.
그 뒤에 selectProcess메소드에서 보시면, MySqlToken이라는 클래스를 이용합니다. Statement객체의 executeQuery메소드에 쿼리문을 넣어서 실행하면 token이 발행됩니다.
이 token에 addResponder라는 메소드를 통해 AsyncResponder를 이용해 해당 function넣은 객체를 생성해서 addResponder에 집어넣습니다. 그러면 데이터를 가져오는 시점에서 넣은 function이 호출이 됩니다.

여기서 데이터를 파싱하는 부분에서 엄청 편해진 부분이있는데요.
[code]rs.getRows();
[/code]
getRows라는 메소드가 있는데, 이건 해당 데이터셋을 자동으로 ArrayCollection형으로 변환해서 리턴해줍니다.
그러면 바로 바인딩된 datagrid에 데이터가 뿌려지겠죠. 멋집니다.

insert부분도 똑같습니다.
그냥 자바문법과 비슷하다고 보면 되겠네요.
틀린 점이 있다면 이건 이벤트기반이라는 것이죠 ^^ 비동기적으로 일어납니다.
사용자 삽입 이미지

셀렉트도 잘되네요. 구글크롬에서 해봤어요. 잘 되네요.

사용자 삽입 이미지

머드초보를 2.00로 해서 입력해봅시다.

사용자 삽입 이미지

잘 들어갔네요.

PS. 실무db연동은....서버단언어와 함께하시길 바랍니다 ^^ (JAVA, C# 등등~)
 
Posted by 머드초보

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 네버다이 2008.09.12 14:04  댓글주소  수정/삭제  댓글쓰기

    머드초보님 잘 지내셨는지요? ^^

    assql 찾다가 또 머드초보님 홈피로 왔네요.

    위 예제 따라해보고 있는데요. 로컬은 잘되나 제 홈피계정에서 돌리면 위에서 이미 언급하신분처럼

    에러가 나네요. crossdomain.xml 설정해줬구요.

    http://otl.pe.kr/a/assql.html

    위 페이지입니다.

    호스팅업체에서는 localhost호스트에 대해서 따로 막지는 않았다고 합니다. 포트도 기본포트구요.

    문제가 뭘까요? 그럼 추석 잘 보내세요~


    <?xml version="1.0"?>
    <cross-domain-policy>
    <allow-access-from domain="*" to-ports="3306" secure="false" />
    <allow-access-from domain="*.otl.pe.kr" to-ports="3306" secure="false" />
    <allow-access-from domain="www.otl.pe.kr" to-ports="3306" secure="false" />
    <allow-access-from domain="otl.pe.kr" to-ports="3306" secure="false" />
    </cross-domain-policy>

    • 머드초보 2008.09.12 14:18  댓글주소  수정/삭제

      안녕하세요~
      assql은 http통신이 아닌 소켓으로 3306포트로 직접 통신하고 있습니다.
      그래서 3306포트로 소켓을 연결할 때 FLEX애플리케이션은 843포트로 크로스도메인파일을 요청합니다.
      그래서 843포트로 크로스도메인파일을 줄 서버프로그램을 만들어야합니다.
      http://code.google.com/p/assql/wiki/JavaPolicyFileServer
      이거대로 톰캣으로 띄워서 843포트를 여시는 방법이 있구요.
      서버가 유닉스나 리눅스 계열이라면 gcc를 이용한 방법이 있습니다.
      http://panzergruppe.hp.infoseek.co.jp/fspfd.html
      그리고 assql은 localhost로 하면 안되더라구요.
      아이피를 직접 써주셔야합니다.
      해당 MySQL서버의 아이피를 직접 써주셔야합니다 ^^

      그나저나 네버다이님 오랜만이네요 ^^

  3. 네버다이 2008.09.12 14:42  댓글주소  수정/삭제  댓글쓰기

    네 오래간만이네요. 오기는 자주왔는데 글을 안써서리.. ^^

    제가 호스팅을 받다보니 제약이 많네요.

    우선 linux서버에 apache,php,mysql 연동된 호스팅받고 있구요.

    업체쪽에서 뭔가 해주지지는 않을꺼 같네요. 이거 되면 홈피에 이거저거 만들어 볼라고 했더만

    843번만이라도 열어달라고 하면될라나... ^^

    ip를 직접써줘야 한다는건 결국 연동했을때 공인ip를 가진 mysql일 경우만 가능한 경우가 되겠군요.

    • 머드초보 2008.09.12 14:53  댓글주소  수정/삭제

      아 그렇군요.
      843번포트로 서버프로그램만 띄울 수 있다면 됩니다 ^^
      ip말고 도메인으로 해도 될것같은데요.
      mysql이 떠있는 서버의 아이피나, 도메인주소를 알면 되는것이죠^^
      호스팅을 받고 있군요.
      음 샤바샤바만 잘해보시면 ^^

  4. 돌아이비 2008.11.12 12:07  댓글주소  수정/삭제  댓글쓰기

    안녕하세요? 플렉스를 공부하고 있는 초보 프로그래머입니다.^^
    asSQL 관련예제를 검색하다가 머드초보님 블로그를 방문하게 되었는데 플렉스 관련 예제가 많네요~
    머드초보님 예제들로 열공해야겠습니다. 좋은 예제들 감사해요~^^

    • 머드초보 2008.11.15 10:41  댓글주소  수정/삭제

      저도 초보 프로그래머입니다 ㅠㅠ
      허접한 예제가 도움이 되었으면 합니다 ^^

  5. 돌아이비 2008.11.13 00:02  댓글주소  수정/삭제  댓글쓰기

    예제 받아간지 얼마되지 않아서 바로 질문을 드리게 되네요..^^;;
    #2048 보안샌드박스 문제가 발생하길래 댓글로 알려주신 페이지에 있는 소스들 참고해서
    web.xml / crossdomain.xml / PolicyServerServlet.java 3개 파일을 만들었습니다.

    web.xml은 $CATALINA_HOME$/webapps/ROOT/WEB-INF 내의 web.xml 파일에 내용 추가했고,

    crossdomain.xml 파일은 $CATALINA_HOME$/webapps/ROOT 폴더 내에 두었고요.

    PolicyServerServlet.java 파일은 javac로 컴파일해서
    PolicyServerServlet.class / PolicyServerServlet$1.class / PolicyServerServlet$1$1.class 3개 파일을
    $CATALINA_HOME$/webapps/ROOT/WEB-INF/classes/com/maclema/flash 폴더 내에 넣었습니다.

    그런데도 디버그 모드로 띄워보니

    오류: http://localhost:8080/lcds/assql-ex-debug/main.swf의 SWF는 정책 파일 없이 해당 도메인에서 소켓에 연결할 수 없습니다.

    라는 오류메시지가 뜨네요..ㅠ_ㅠ

    의심가는 부분은 PolicyServerSevlet.java 파일 내 crossdomain.xml 파일 경로 설정 부분 뿐인데..
    어떻게 해야 보안샌드박스 문제를 해결할 수 있을지 도저히 감이 안와서 이렇게 댓글을 남깁니다.

    그럼 즐거운 하루 보내시고 시간 여유있으실 때 답변 부탁드려요^^ 굽신굽신~

    • 머드초보 2008.11.15 10:44  댓글주소  수정/삭제

      음...우선 정책파일을 못 찾는 것 같은데....
      서블릿에서 생성하는 놈은 843포트로 정책파일을 받는 스레드를
      만드는 겁니다. assql은 소켓을 통해 db내용을 송수신 하기 때문입니다.
      타 도메인에 있는 소켓을 사용하려면 정책파일에 허락이 되어있는지
      정의가 되어있어야 하는데요.
      위는 뭔가 셋팅이 잘못 된 듯 합니다.
      결론은 저...저도 잘모르겠습니다 ㅠㅠ

  6. 돌아이비 2008.11.17 07:32  댓글주소  수정/삭제  댓글쓰기

    음.. 그렇군요.. ㅠ_ㅠ
    여기저기 검색하면서 이렇게 저렇게 고쳐봤는데도 여전히 먹통이네요.. ㅠ_ㅠ
    그래도 로컬에서는 잘 돌아가니까 공부하는데는 별 지장이 없네요~
    정책파일 문제는.. 다 그렇듯이 언젠가는 해결법을 찾겠죠^^;
    답변 감사드려요~ 즐거운 하루 보내세요^^

    • 머드초보 2008.11.19 14:11  댓글주소  수정/삭제

      음....보안샌드박스문제는 생각해보면 간단합니다.
      해당 서버에서 해당 도메인을 허락하는거죠 ^^
      좀만 더 보시면 알 수 있을겁니다^^

  7. EH71 2008.11.19 12:46  댓글주소  수정/삭제  댓글쓰기

    안녕하세요-
    흔적도 없이 포스팅 잘 보고 있습니다ㅎㅎㅎ

    오늘은 흔적을 좀 남겨야 할 것 같은데요....
    책들을 참조해서 자바 서버 애플리케이션 <-> 플렉스 클라이언트 채팅 프로그램을 만들어보고 있는데요.
    서버는 톰캣에 얹어 돌리는 서블릿은 아니고 소켓이 구현되어 있는 통짜 애플리케이션입니다.

    플렉스 클라이언트에서 접속을 시도하면 보안 샌드박스 에러가 나는데요.
    이 포스트에 써주신 같은 방법으로 이 문제를 해결할 수 있는건지 궁금합니다.
    클라이언트는 80포트로 html 파일에 접근해서, 8401포트로 자바 애플리케이션에 접근합니다.

    이 포스트에 있는 방법을 수정해서 적용해야 한다면 어떤 부분을 수정해주어야 하나요?

    답변 주시면 감사드리겠습니다ㅠ 초보에겐 너무 어렵네요ㅠㅠ

    • 머드초보 2008.11.19 14:12  댓글주소  수정/삭제

      안녕하세요!
      구조가 어떻게 되어있는지 이해가 잘 안되네요 ㅠ
      클라이언트가 80포트로 html에 접근하다니 무슨 말인지 모르겠어요.

  8. BlogIcon 블루비 2008.12.03 22:40  댓글주소  수정/삭제  댓글쓰기

    asSQL 보안 문제 때문에 막막하던차에 해결책을 찾을 수 있어서 많은 도움이 되었습니다. ^^

    • 머드초보 2008.12.04 18:37  댓글주소  수정/삭제

      앗~ 도움이 되셨다니 다행입니다 ^^
      보안 문제는 Flash Player가 항상 안고다니는 문제죠 ^^

  9. 권오범 2009.05.21 19:04  댓글주소  수정/삭제  댓글쓰기

    안녕하셔요
    flex를 공부하는 초보자입니다.
    님의 글을 읽고 직접 테스트를 하였는데
    mysql charset이 문제입니다.
    table의 column type이 varchar는 charset을 "euckr"로 연결하면 한글이
    정상적으로 나오는데 column type이 text 인것은 한글이 깨어져
    나옵니다. 반대로 charset을 utf8로 하면 text는 정상이고 varchar는
    한글이 깨어져 나옵니다.
    저의 mysql db charset은 utf8 입니다
    혹 해결방법을 아시면 부탁합니다.

    • 머드초보 2009.05.23 23:51  댓글주소  수정/삭제

      저도 인코딩 문제로 한글깨짐 문제를 겪긴 했는데요.
      text로 된 칼럼은 없어서 테스트를 못해봤네요ㅠ
      db연동하는거라면 사실 서버단이랑 하시는게....-_-
      답변이 못되서 죄송해요 ㅠ

  10. 권오범 2009.06.03 19:50  댓글주소  수정/삭제  댓글쓰기

    assql을 테스트하면서 mysql의 charset에 대하여
    적어봅니다.
    windows와 linux mysql의 기본 charset은 "utf8"입니다
    air program으로 만들어서 테스트 했습니다.
    1. windows-mysql로 접속(local)
    1) assql에서 "euckr"로 연결하면
    - varchar : 한글정상
    - text : 한글깨짐
    2) utf8로 연결
    - 모두 한글 깨짐

    2. linux-mysql로 접속(remote)
    1) utf8로 연결
    - 모두 한글 깨짐
    2) euckr
    - mysql에 charset이 없어 연결이 안됨

    3. linux-mysql 을 local에서 접속(linux에서)
    1) utf8로 연결
    - 모두 한글 정상

    그리고 위의 assql을 이용한 flex program에서
    air program이 아니고 flex로 컴파일한 html과 swf를
    web server(was)로 옮겨 실행할려면
    assql.swc를 어디로 copy하고 어떤 파일을
    맞추어여 합니까
    flex에서는 실행이 되는데 html과 swf를 옮기면
    안됩니다

    • 머드초보 2009.06.05 09:33  댓글주소  수정/삭제

      오 깔끔한 정리 감사해요 ^^
      한글 문제는 언제나 ㅠㅠ

      마지막에 질문은 web서버에 배포할 때 말씀하시는거죠?
      assql.swc를 lib에 넣었으면 통합되어서 swf로 나오는데
      그냥 배포하면 될텐데..
      잘 모르겠네요 ㅠㅠ

  11. 권오범 2009.06.05 11:03  댓글주소  수정/삭제  댓글쓰기

    assql 보안문제는 윗쪽의 PolicyServerServlet.java 로
    windows 쪽 mysql은 해결했습니다.
    원래 linux쪽 mysql로 사용할려고 했으니 linux쪽도
    테스트를 해야죠
    그리고 이상한게 assql을 이용하여 flex에서 만든 air 프로그램은
    위의 보안문제와 상관없이 mysql 접속이 됩니다,
    똑같은 프로그램으로 air프로그램과 web프로그램으로 테스트를
    했는데 linux 쪽 mysql을 air 프로그램은 문제없습니다

    • 머드초보 2009.06.05 11:14  댓글주소  수정/삭제

      아...그 보안문제!
      얘가 socket을 통해 전송하기 때문에 그래요 ^^
      그리고 air는 crossdomain정책이 필요 없습니다
      데스크탑애플리케이션이기 때문이죠.

  12. 샤키 2009.06.08 16:42  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 플렉스를 공부하고 있는 4학년 학생입니다.
    자료 감사하게 잘봤습니다.
    질문사항이 하나 있는데요.
    sql문 이구요.
    var token:MySqlToken = st.executeQuery("SELECT subject,contents FROM schedule where date="+select_Day+"" );
    ---------------------------------------------------
    var rs:ResultSet = ResultSet(data);
    dataAC = rs.getRows();
    이부분에서 데이터 바인딩을 통해 DataGrid에서 뿌려지게 되잖아요.
    근데 subject부분만 TextArea나 text박스에 뿌려지게 하고 싶은데
    잘안되네요.
    var rs:ResultSet = ResultSet(data);
    subject_txt.text = rs.getRows(data).getItemAt(0).toString();
    제가 작성한 부분은데 [object Object]라고 출력이 되네요
    도와주세요....ㅠㅠ

    • 머드초보 2009.06.11 23:44  댓글주소  수정/삭제

      아....답변이 늦었네요.
      우선 getItemAt(0)을 하게 되면 그 해당 Object를 가져오는 것이지
      특정 칼럼의 값을 가져오지 않습니다.
      디버기해보시면 obj에 어떤 속성이 있는지 확인하시면 확인할 수 있어요
      아마 getItemAt(0).name 이런식으로 접근하시면 됩니다.

  13. 권오범 2009.06.21 11:27  댓글주소  수정/삭제  댓글쓰기

    안녕하셔요
    assql에 대한 질문입니다.

    mysql로 자료를 입력할때 위의 예제와 같이

    st.sql = "INSERT INTO products (description, price) VALUES (?, ?)";
    st.setString(1, inputDescription.text);
    st.setNumber(2, Number(inputPrice.text));
    var token:MySqlToken = st.executeQuery();
    하는데 만약에
    inputPrice.text 값이 'aa' 이고 inputPrice.text 값이 spcae이면
    server로

    "INSERT INTO products (description, price) VALUES ('aa', )"
    넘어갑니다 그리고 syntax error 나고

    assql bug인지 아니면 제가 잘못사용하는지
    알려주십시오

    • 머드초보 2009.06.21 23:44  댓글주소  수정/삭제

      음....그것에 대해서는 저도 잘 모르겠네요.
      저도 assql을 사용해본지 오래되어서 ㅠㅠ
      Number(inputPrice.text) 값은 0이 맞을텐데...
      0을 하드코딩해서 넣어도 그렇게 나오는지 테스트를 해보면 될 듯 하네요.
      안되면 버그임 ㅠㅠ

  14. 박주영 2009.07.10 17:34  댓글주소  수정/삭제  댓글쓰기

    난데 없이 질문입니다. 머드초보님의 ASSQL 사용예를 보고

    간단한 Datagrid를 이용해서 간단한 게시판을 만드는 중인데 너무 막히는데가 많아서

    이렇게 질문드립니다.

    현재 막히는 부분은 두가지 입니다.

    하나는 Datagrid 에 DB에서 가져온 내용을 뿌려줄때 따로 버튼을 만들어서

    메서드를 호출 하지 않으면 Datagrid 에 내용이 나오지 않는 문제입니다.

    private function selectResult(data:Object, token:Object):void{
    var rs:ResultSet = ResultSet(data);
    mydata = rs.getRows();
    }
    private function selectProcess():void{
    token=st.executeQuery(
    "SELECT num,title,writer,date,hit FROM board";);
    token.addResponder(new AsyncResponder(selectResult,fault));
    }

    게시판 보기라는 버튼을 만들어서 호출하는 메서드는 selectProcess() 메서드입니다.

    일단 버튼을 누르면 게시판에 내용은 잘 보여줍니다만

    컴포넌트를 로드 하자 마자 게시판에 내용을 보여주려고 creationComplete

    에서 저 메서드를 호출하니

    TypeError: Error #1009: null 객체 참조의 속성이나 메서드에 액세스할 수 없습니다.

    이런 에러메시지가 나오더군요 . DB에 접속하기 전에 저런 에러가 나나 보다 라고 생각해서

    DB와 접속하는 메서드 밑에서 호출해도 마찬가지로 저 에러메시지가 나타납니다.

    두번째 문제는 Datagrid 에서 글 제목을 클릭했을때 글 내용이 봐 지지 않는 문제입니다.

    Datagrid에서 ItemClick 했을시에 호출되는 메서드는 다음과 같이 작성했습니다.

    private function selectItem(e:Event):void{
    var vnum:Number = dg.selectedIndex+1;
    token = st.executeQuery("SELECT myText FROM board WHERE num='vnum'";);
    dg.visible=false;
    this.currentState ='view';
    }

    DB에 num가 1부터 시작되고 선택한 index 번호는 0부터 시작되기에 1을 더해서

    변수에 기억시켜놓고 .. 쿼리문으로 그 num 에 맞는 내용을 찾게 해서 view 스테이트에

    만들어 놓은 폼에 뿌리고 싶은데 여기서 계속 막힙니다.

    Datagrid 폼을 만들어 놓고 위에 메서드에 db에서 값을 받아오는 ArrayCollection 을 하나

    만들어 쿼리문에 반환값을 받게 한후에 datagrid 에 dataProvider 에 연결시키면 될거

    같은데 결과값이 나오질 않습니다.

    그리고 selectProcess메소드에 마지막에 있는

    token.addResponder(new AsyncResponder(selectResult,fault)); 이 메서드는 어떤 역할

    을 하는것인가요? 인자로 봐서는 selectResult메서드를 호출하면서 실패시에는 fault

    메서드를 호출하는 것 같은데 selectResult메서드 호출시 아무런 인자도 주지 않았는데

    selectResult에서는 (data:Object, token:Object) 를 인자로 받고 있어서 자바를 배운저로

    써는 매우 헷갈리는 부분입니다. 아마도 selectProcess 메서드에서 내부적으로 처리되는

    인자를 자동으로 넘겨주는거 같은데 잘 모르겠네요 .

    • 머드초보 2009.07.13 14:59  댓글주소  수정/삭제

      안녕하세요~
      소스를 전체 보고 싶은데, 볼 수 있을까요?-_-
      질문이 이해가 좀 안돼서 ㅠㅠ 이해력이 원래 좀 딸림 ㅠㅠ

  15. elyse 2009.09.10 17:39  댓글주소  수정/삭제  댓글쓰기

    안녕하세요, BlazeDS로 Messaging service와 Remote Object를 이용(JAVA단 DB 연동)하는 방법과, Socket으로 실시간 데이터를 처리하고 asSQL로 DB 데이터를 처리하는 방법 중 어떤 방법이 더 나을까요? 댓글을 보니 asSQL의 보안문제가 있다고 하는데 구체적으로 어떤 문제가 있는지 알고 싶습니다. 또한 지금은 어느 정도 해결이 되었나...도 궁금하구요. 전 Java는 해본 적이 없지만 C로 프로젝트를 해본 적은 있어서 앞의 두 가지 방안 중 어떤 방식으로 프로젝트 방향을 결정해야 할지.. 막막하네요; 물론 Flex도 초보 입니다. ㅜ_ㅠ 답변 꼭 부탁 드릴게요!

    • 머드초보 2009.09.14 21:43  댓글주소  수정/삭제

      안녕하세요!
      어떤걸 만드실지 모르겠지만, 지속적인 유지보수가 들어가는 프로젝트라면 1번을 추천합니다^^
      답변이 완전 늦었네요-_-
      어떤걸 하시는지가 궁금하네요^^

  16. tera 2009.09.29 12:03  댓글주소  수정/삭제  댓글쓰기

    좋은글 잘 봤습니다. 저도 테스트를 해 봤는데(소스 긁어서;;)
    insert는 잘 됩니다만, selection에서 datagrid로 뿌려주는 함수 호출(예제에서 selectResult 함수)이 안되는데 왜 그런걸까요...

    테스트한 소스는 아래링크에 있습니다.
    http://naturalclass.blogspot.com/

    그럼 수고하세요..

  17. tera 2009.09.29 14:54  댓글주소  수정/삭제  댓글쓰기

    좋은글 잘 봤습니다. 저도 테스트를 해 봤는데(소스 긁어서;;)
    insert는 잘 됩니다만, selection에서 datagrid로 뿌려주는 함수 호출(예제에서 selectResult 함수)이 안되는데 왜 그런걸까요...

    테스트한 소스는 아래링크에 있습니다.
    http://naturalclass.blogspot.com/

    그럼 수고하세요..

    • 머드초보 2009.10.05 09:27  댓글주소  수정/삭제

      음...왜그럴까요...-_-
      사실 저도 저거 안해본지 오래되어서-_-
      예전에 했을 때 저는 분명히 되었는데....ㅠㅠ

  18. elyse 2009.09.30 11:16  댓글주소  수정/삭제  댓글쓰기

    아아, 저 위에 답변, 먼저 감사드려요.
    이전 예제를 가지고 리눅스 서버에 설치된 Mysql IP를 DB 주소에 넣었더니, 다음과 같은 에러가 났습니다. Mysql 버전은, 4.1.21 이구요. crossdomain 관련해서 설정한 것은 없습니다. (어떻게 설정해야 하는지 잘 모르겠습니다;;;;)

    =============================
    Error: Unsupported Server Version
    at com.maclema.mysql::HandshakeHandler/doHandshake()[/Users/Matt/Documents/FlexBuilder3/assql/com/maclema/mysql/HandshakeHandler.as:145]
    at com.maclema.mysql::HandshakeHandler/newPacket()[/Users/Matt/Documents/FlexBuilder3/assql/com/maclema/mysql/HandshakeHandler.as:42]
    at com.maclema.mysql::DataHandler/pushPacket()[/Users/Matt/Documents/FlexBuilder3/assql/com/maclema/mysql/DataHandler.as:34]
    at com.maclema.mysql::Connection/checkForPackets()[/Users/Matt/Documents/FlexBuilder3/assql/com/maclema/mysql/Connection.as:151]
    at com.maclema.mysql::Connection/onSocketData()[/Users/Matt/Documents/FlexBuilder3/assql/com/maclema/mysql/Connection.as:122]
    =========================

    위에 어느 댓글에 달린, http://panzergruppe.hp.infoseek.co.jp/fspfd.html 여기 C 소스 파일을 가져다가 리눅스 서버에 루트로 다음 작업 까지는 했는데 그 이후에 xml 파일이라던가 그런 관계를 잘 모르겠습니다.

    =======================================
    Compile at first like as following.
    gcc -Wall -O2 -o fspfd fspfd.c

    Execute as daemon by root. This server sends back fspfd.xml in same directory to clients.
    ./fspfd &
    =======================================

    이, fspfd.xml 파일이 안생기던데요. 만약 생긴다고 하면 그것을 어떻게 하면 되는 건지 잘 모르겠습니다.

    • 머드초보 2009.10.05 09:26  댓글주소  수정/삭제

      안녕하세요~
      저도 그런에러는 본적이 없는데, 제 생각인데요.
      Mysql이 버전이 낮아서 그런 것 같아요.
      4.X대면 좀 낮은 듯해서 지원하지 않는다고 하는 것 같네요^^

  19. 문준호 2009.11.17 02:09  댓글주소  수정/삭제  댓글쓰기

    예제 대로 코딩을 해봤는데요....

    아래에 DB주소랑 코드랑 아이디랑 비번이랑 이거 제가 잘못 적은건가요???
    실행해서 추가 버튼 눌러도 DB에 저장이 안돼요...
    ㅠ.ㅠ
    좀 알려주세요..ㅠ.ㅠ
    con = new Connection("jdbc:mysql://172.19.116.10:3306", 3306, "moongom", "비번", "products";)

    • 머드초보 2009.11.17 23:49  댓글주소  수정/삭제

      안녕하세요~
      혹시....URL부분에 :3306빼보고도 해보셨는지?
      포트 지정하는게 제 기억으론 2번째 파라메터인 걸로 압니다.

  20. 천천히가자 2010.03.12 10:12  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.. 머드초보님..
    글 잘보았습니다. 따라해서 실행까지 잘되었는데요..
    한가지 문제점이 있어서 질문 좀 드릴게요
    리눅스(CentOS)와 파이어폭스 환경에서는 db접속이 안되네요...
    con = new Connection("DB주소", 3306,
    "DB아이디", "DB비밀번호", "DB이름";
    con.addEventListener(Event.CONNECT, onConnect); <== 요기에서 db연결을 성공적으로 하면
    onConnect라는 함수로 가야되느데.. onConnect함수로 넘어가지를 안습니다. db접속이 안되어서 그런거 같은데요..
    이상한것은 윈도우 환경의 익스플로러랑, 윈도우 환경의 파이어폭스에서는 db에 접속하여 정보를 잘 가지고 옵니다. 리눅스환경의 파이어폭스에서만 접속이 안되네요..
    혹시나 asSQL로 db에 바로 접속하여 가져오는 것이 리눅스에서는 안되는 것인가요??
    db는 mysql5 입니다.

  21. BlogIcon 웹눈 2010.05.07 11:18  댓글주소  수정/삭제  댓글쓰기

    클라이언트 어플단에서 DB ID와 비밀번호 등을 입력하면 정보가 노출되는 위험이 있지 않을까요?
    잘 모르겠지만.. 디컴파일이 된다면...

    • 머드초보 2010.05.07 17:15  댓글주소  수정/삭제

      네~ 이건 보안상 매우 좋지 않은 모델입니다
      게다가 포트도 열려있어야하기 때문에-_-
      실무에서 쓰지 않는게....좋습니다^^