쿼리를 이용하여 DB LINK를 만들기 위한 방법을 기록해 봅니다.
수정할 부분은 아래 두개의 쿼리에 붉은색 내용만 작업 하려는 시스템에 맞도록 수정하면 됩니다.

 

- 연결 서버 생성


EXEC sp_addlinkedserver  
       @server='REMOTEDB_DBLINK',  -- DB LINK할 서버의 별칭. 마음대로 기입.
       @srvproduct = '', -- 공백.
       @provider = 'SQLOLEDB', -- SQL 서버.
       @datasrc = '192.168.0.111', -- DB LINK할 서버의 IP.        
       @provstr='',   -- 공백.
       @catalog='REMOTEDB'   -- DB LINK할 DataBase 명칭.

 

- 연결 계정 생성


EXEC sp_addlinkedsrvlogin

      @rmtsrvname='REMOTEDB_DBLINK',  -- DB LINK할 서버의 별칭. 마음대로 기입.
      @useself= 'false',
      @rmtuser = 'userid', -- 연결할 DB의 계정
      @rmtpassword = 'password12@#' -- 연결할 DB의 계정 비밀번호

 

DB LINK가 완료 되면 링크된 디비를 조회해 봅니다.

 

REMOTEDB_DBLINK.REMOTEDB.dbo.TB_member;

 

대괄호로 묶기도 하는데 결과는 동일합니다.

 

SELECT * FROM [REMOTEDB_DBLINK].[REMOTEDB].[dbo].[TB_member];

 

검색 결과가 나왔다면 성공 입니다.

 

- copy coding -

 

전에 PostgreSQL을 설치하면서 PostGIS도 같이 설치를 하였는데 이번에는 PostgreSQLDatabase를 생성하여 PostGIS를 이용해 shp(shapefile)를 업로드 하는 작업을 해봅니다.

 

설치관련 내용은 아래 링크를 참조 하세요.

Windows 10 Postgresql 13.2 과 PostGIS 3.1 설치

 

1. PostGISDB 생성

 

shp 파일 내용을 저장할 databasePostgreSQL에 생성하기 위해 윈도우 시작 버튼을 클릭 하고

 

 

pgAdmin 4를 선택 합니다.

 

pgAdmin 좌측의 Servers를 확장하여 GIS용 데이터 베이스를 하나 새로 생성을 해서 진행을 하도록 하겠습니다.

 

 

Databases에 마우스를 놓고 우클릭 하여 Create > Database... 를 선택 합니다.

 

 

 

 

Database 이름을 적당히 입력해 주고 [Save] 버튼을 클릭 합니다.

 

 

 

TestDB1 데이터베이스가 생성 되었습니다. 

새로 생성된 TestDB1을 선택한 상태에서 상단 아이콘에서 디스크 모양의 Query Tool 아이콘을 클릭 하면 쿼리 입력 창이 나타납니다.

 

 

 

쿼리 입력 창에서 선택된 데이터베이스에 확장 기능을 추가해 주어야 GIS 정보를 담을 수 있는 데이터베이스가 됩니다.

CREATE EXTENSION postgis;

명령어를 입력 하고 실행 버튼 또는 F5 키를 이용하여 쿼리를 실행해 줍니다.

 

postgis 기능 반영이 잘 되었는지는 다음 명령어를 입력해서 실행해 봅니다.

SELECT postgis_full_version();

 

 

 

쿼리 결과도 잘 나오고 좌측 Extensions에도 postgis가 추가 된 것을 확인 할 수 있습니다.

 

 

2. SHP 파일 업로드

 

 

shp 파일 업로드는 PostGIS를 통해서 PostgreSQL에 입력합니다.

 

 

 

시작 버튼에서 PostGIS를 확장하여

PostGIS Bundle 3 for PostgreSQL ... Shapefile... 을 클릭 합니다.

 

 

 

파일을 찾기 위하여 [Add File]을 클릭 합니다.

 

 

 

좌측과 상단에 있는 폴더 기능을 이용하여 SHP 파일이 위치한 곳을 찾아 선택 한 후 [Open] 버튼을 클릭하여 추가해 줍니다.

 

 

 

선택한 파일이 추가 되면 만약 파일에 한글이 들어있는 경우 [Options...] 버튼을 클릭 합니다.

 

 

 

여기에서 UTF-8EUC-KR로 변경해 주어야 한글이 입력 됩니다.

 

 

 

한글이 없다면 상단의 [View connection details...] 버튼을 클릭 합니다.

 

 

 

shp파일을 저장할 PostgreSQL에 접속하는 정보를 입력하는 창으로 Database와 기타 필요한 정보를 입력하고 [OK] 버튼을 클릭 합니다.

 

 

 

하단 Log Window에 연결이 성공 되었다고 나오는 군요.

 

이제 마지막 작업으로 [Import] 버튼을 클릭 합니다.

잠시 후 Log Window[Shapefile import completed.] 가 나오면 입력 성공입니다.

 

다시 PostgreSQL로 돌아가 DB에서 Table을 확장하면

 

 

 

테이블이 새로 생성이 되고 데이터가 추가 된 것을 확인 할 수 있습니다.

import시 오류가 발생 한다면 shp 파일이 위치한 폴더 명에 한글이 있거나 shp 파일 명에 한글이 있는 경우 오류가 발생 하니 꼭 영문으로 해야 하고 shp 파일 내부에 한글이 있다면 options에서 EUC-KR로 해주면 별 문제없이 import 할 수 있습니다.

 

- copy coding -

 

예전 Postgresql 버전을 변경하기 위해 윈도우 10에 설치해 보았습니다.  그냥 프로그램을 다운받아 설치하면 되는데 여러 번 설치를 해야 하는 상황이라 매번 검색을 하기 귀찮아 설치 매뉴얼을 만들었습니다.  어려운 부분은 없지만 그래도 보면서 작업 하면 시간이 단축되더군요.


PostgreSql 프로그램을 바로 다운로드 받으려면

www.enterprisedb.com/downloads/postgres-postgresql-downloads

에 접속하면 되고 


잠시 살펴보고 다운로드 하려면 아래 사이트에 접속합니다.

www.postgresql.org/download/

 

 

운영체제 별로 지원을 하므로 윈도우가 아닌 다른 운영체제용 프로그램을 고르면 되는데 여기서는 Windows 이미지를 선택 합니다.

 

 

 

설명 상단에 있는 [Download the installer]를 클릭 하면 실제 다운로드 페이지로 이동 합니다.

www.enterprisedb.com/downloads/postgres-postgresql-downloads

 

 

 

여기서 실제 운영체제 별로 지원하는 버전을 확인 하고 다운로드 합니다.

postgresql-13.2-1-windows-x64.exe

다운로드 받은 프로그램을 실행해서 설치를 진행하기만 하면 끝 입니다.

 

 

 

 

 

설치 위치를 굳이 변경해야 한다면 수정 합니다.

 

 

 

 

 

이건 데이터를 어디에 보관하는가 결정을 하는 부분인데 저는 기본 폴더가 아닌 D:\에 폴더를 생성해서 프로그램과는 별도로 설정을 했습니다. 

 

 

 

나중에 pgAdmin 프로그램으로 DB에 접속할 때 사용하는 관리자 계정 비밀번호로 잘 기억해 둡니다.

 

 

 

보안을 위해 Port를 달리 사용한다면 변경해 줍니다.

 

 

 

 

 

지금까지 설정한 내용을 확인하고 변경이 필요하면 [Back] 버튼으로 돌아가 수정하면 됩니다.

 

 

 

이제 설치 준비가 되었군요.  설치를 진행 합니다.

 

 

 

 

 

PostGIS등의 추가기능을 설치합니다.  PoatgreSQL만 필요하다면 여기서 종료하면 됩니다.

 

 

 

 

PostgreSQL 13.2가 이미 설치되어 있는데 다른 버전이 필요하다면 선택합니다. 아니면 아래로 이동해서

 

 

 

추가로 설치 하려는 PostGIS 3.1을 선택 하고 그외에도 필요한 확장 프로그램이 있으면 선택해 줍니다.

 

 

 

선택한 프로그램을 다운로드 받을 폴더로 만약 자동 설치가 안되면 찾아가서 설치를 진행하면 됩니다.

 

 

 

여기서 가끔 락이 걸리는 경우가 있는데(위의 그림처럼 응답 없음) 잠시 기다리거나 [Back]으로 돌아 같다가 다시 진행하거나 하면 다운로드가 진행 됩니다.  아마 다운로드 받기 위한 접속에 시간이 걸리는 것 같습니다.

 

 

 

추가로 선택한 프로그램을 다운로드 받습니다.

 

 

 

추가로 선택한 프로그램 설치가 진행 합니다.

 

 

 

 

 

 

 

설치 위치는 PostgreSQL과 동일한 위치에 하도록 하고

 

 

 

 

중간에 나오는 창에서는 모두 [예]를 클릭 합니다.

 

 

 

 

 

 

 

 

 

 

여기까지 PostGIS 설치가 완료 되었습니다.

이제 설치된 프로그램을 확인해 봅니다.

 

 

 

pgAdmkin 4를 선택해서 DB도 확인합니다.  프로그램을 브라우저에서 작동 합니다.

 

 

 

설치할 때 입력한 비밀번호를 이용하여 로그인 합니다.

 

 

 

PostgreSQL 접속용 비밀번호를 입력 합니다.  저는 둘다 동일하게 했습니다.

 

 

 

좌측에 DB 정보가 있고 우측에 부가 정보를 확인할 수 있습니다.
좌측에서 신규 데이터베이스를 생성하고 사용하면 됩니다.

 

- copy coding -

안드로이드 스튜디오 4.x를 사용할 때는 이런 오류가 없었는데 3.x version 에서 코딩을 하는데 오류가 발생하였습니다. 정확한 안드로이드 스튜디오 버전은

 

이고

 

 

오류가 발생한 붉은색 Nullable에 마우스를 가져가면 오류 내용이 보입니다.
Cannot resolve symbol ‘Nullable’

 

 

public class SDBHelper extends SQLiteOpenHelper {

    private String TB_Member = "member";

    public SDBHelper(@androidx.annotation.Nullable Context context, @androidx.annotation.Nullable String name, @androidx.annotation.Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

 

내가 짠 프로그램이 아니고 상속받은 메소드를 자동 생성한 것이라 수정이 아닌 오류 해결을 해야 하겠군요.

AndroidX library를 사용하도록 디펜던시를 추가합니다.

 

build.gradle (Module) 파일을 열고 아래 내용을 추가 합니다.

dependencies {
    implementation 'androidx.appcompat:appcompat:1.1.0-rc01'

 

 

Sync Now를 해주면

 

 

Nullable에 오류가 사라졌습니다. App을 실행하면 다른 오류가 발생합니다.

 

gradle.properties에 androidx를 사용하기 위해 추가 합니다.

 

android.useAndroidX=true
android.enableJetifier=true

 

 

Sync Now를 하고 보면 또 다른 오류가 기다리고 있습니다

 

 

 

산 넘어 산이네요.  Refactor를 이용해 소스를 activex용으로 수정을 해봅니다.  코딩 시작 단계라 사실 이렇게 까지는 하지 않아도 되지만...

 

 

 

Refactor > Migrate to AndroidX...
메뉴를 클릭하면 만일을 위해 소스를 백업 하라고 나옵니다.

 

 

예전에 사용하던 프로젝트라면 backup 해야 잘못 migrate 되었을 때 비교 확인을 할 수 있습니다. 오류가 사라지고 소스가 조금 변경 되었습니다.

 

 

import android.support.v7.app.AppCompatActivity.;

 

이것 말고 하단에 추가로 

 

import androidx.appcompat.app.AppCompatActivity;

이게 추가 되었네요. 위에 있는 v7은 사용하지 않으니 주석 처리합니다.

다시 앱을 실행해 볼까요?  이런 또 오류 군요.

 

 

 

 

MainActivity.java의

 

13번째 라인이 문제 이군요.

 

 

layout에 문제가 있다고 하네요. Layout 파일에서 오류를 찾아 봅시다.

 

 

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
  .....

 

별거 없는 것 같은데....
자세히 보면 android.support..... 이렇게 되어 있습니다.  Refactor가 수정을 못한 것 같습니다.
androidx로 수정을 해보도록 합니다.

 

 

수정을 하려면
Design > Component Tree > ConstraintLayout > 마우스 우클릭 > Convert view...

 

팝업 창에서 ConstraintLayout이 androidx.constraintlayout.widget.ConstraintLayout 로

되면 [Apply]버튼을 클릭 합니다.

 

 

activity_main.xml

 

파일을 열어보면

 

 

 

수정이 되었습니다.  이제 또 다시 한번 app을 실행해 봅니다.

 

 

 

오류 없이 화면이 나왔습니다.  오랜만에 참 힘든 오류 수정이었습니다.
그냥 안드로이드 스튜디오 4.x 버전을 사용해야 겠습니다. -_-;;

 

- copy coding -


1···23242526272829···118

+ Recent posts