Xojo 로 Web+DB 앱을 만들어 보자 (MySQL/MariaDB편)

"Xojo로 Web+DB 앱 만들기"
htps : // 코 m / 난부 wks / ms / 2 세 FC72528 A16D60 A329

이제 SQLite를 사용했지만 MySQL (MariaDB)에서 시도해 보겠습니다.

데이터베이스 준비



"MariaDB on Ubuntu18.04 LTS"
htps : // m / 난부 wks / ms / c98c51744bd0f72 A7087

같은 방법으로 설치합니다.

앱 만들기



첫 번째 메뉴에서 웹을 선택합니다.


앱을 선택하고 메뉴 모음의 Insert-Property에서 Name을 db로, Type을 MySQLCommunityServer로 설정합니다.

앱을 다시 선택하고 Insert-Event Handler-Open에서 다음을 작성하십시오.

self.db = New MySQLCommunityServer
self.db.Host = "127.0.0.1"
self.db.UserName = "webdb"
self.db.Password = "password"
self.db.DatabaseName = "test"
Try
  self.db.Connect
  // proceed with database operations here..
Catch error As DatabaseException
  MessageBox("The database couldn't be opened. Error: " + error.Message)
  Return
End Try
try
  self.db.SQLExecute("set names utf8 collate utf8_general_ci")
  self.db.SQLExecute("set character set utf8")
  self.db.SQLExecute("use test")
Catch error as DatabaseException
  MessageBox error.Message
end try

WebPage1로 이동하여 Text Field를 2개, 버튼을 1개 드래그 드롭합니다. 버튼을 두 번 클릭하여 Action에 다음을 씁니다.
var Record as new DatabaseRow
dim temp as string
temp = tempField.Text
dim hemi as string
hemi = hemiField.Text
try
  app.db.ExecuteSQL("INSERT INTO sensor ( sensor,temp,hemi ) VALUES (1,"+temp+","+hemi+");")
Catch error as DatabaseException
  MessageBox error.Message
end try

그런 다음 버튼을 하나 더 놓고 두 번 클릭하여 Action에 다음 코드를 씁니다.

var temp,hemi as double
var rs as RowSet
try
  rs =app.db.SelectSQL("SELECT id,sensor,temp,hemi FROM sensor")
Catch e as DatabaseException
  messagebox e.Message
end try
try
  for each row as databaserow in rs
    temp = val(row.column("temp").stringvalue)
    hemi = val(row.column("hemi").stringvalue)
    Listbox1.AddRow( row.column("id").StringValue,row.column("sensor"),format(temp,"##.#"),format(hemi,"##.#") )
  next
Catch e as DatabaseException
  messagebox e.Message
end try

마지막으로 List Box를 WebPage1에 놓고 열 수를 4로 만듭니다.

라벨을 붙이거나 OK를 다시 작성하여 체재를 정돈합니다.



실행



본래는, Play 버튼을 누르면 내장 Web 서버가 기동해, 브라우저가 자동으로 기동해 앱 화면이 표시된다.
이번에는 코딩은 Windows에서 실행은 Linux 서버에서 움직였다. MySQL/MariaDB도 Linux에서 실행되고 있다.
이러한 이유는 일본어로 MySQL/MariaDB를 Xojo로 사용하는 경우 Windows에서는 문제가 있고, Xojo IDE가 Linux에서는 문제가 있기 때문이다.

로컬 LAN끼리 접속하여 다음과 같이 실행한다.
Xojo로 원격 개발
htps : // 코 m / 난부 wks / ms / 4743756186060c3c3d20

웹 앱이지만 Remode Debugger Desktop이 아니면 움직이지 않았다.
원격이 아니면 웹 브라우저가 자동으로 시작되지만 이번에는 수동으로 웹 브라우저를 http://(Linux 서버의 IP 주소):8080
열기.



데스크톱 앱과 다른 곳



「ojo 로 Web+DB 앱을 만들어 보자(SQLite편)」와 같은 내용:
  • WIndow1 → WebPage가 된다
  • ListBox라는 이름은 예약되어 있기 때문에 ListBox1이라는 이름으로 했다.
  • 텍스트 필드를 사용한 hemiField 의 값: hemiField.Value 는 hemiField.Text 가 된다
  • 좋은 웹페이지 즐겨찾기