我三流

いろいろ自分なりにやってみたことを書いています

PostgreSQL 11.1 インストールで「An error occurred executing the Microsoft VC++ runtime installer」

久しぶりに

Visual Studio 2017 無料でダウンロードとか

PostgreSQL 11.1 インストールで

「An error occurred executing the Microsoft VC++ runtime installer」

で躓いたりしたけど

ショートカット作って --install_runtimes 0 とかすることで回避

大変そうだな~

f:id:oira3ryu:20190127201245j:plain

スクショ

 

Postgresql 氏名フィールドに半角全角の混じった空白スペースを挟む場合の「氏」「名」分割方法

こんなテーブルがあり

 name     |    namef    
----------+--------------
田中 一郎 |タナカ イチロウ      
----------+--------------
鈴木 幸子  |スズキ サチコ   

こんなSQL

select split_part(replace(name, ' ',' '),' ',1) first_name, split_part(replace(name, ' ',' '),' ',2) last_name
, split_part(replace(namef, ' ',' '),' ',1) first_namef, split_part(replace(namef, ' ',' '),' ',2) last_namef
  from users;

結果、こうなります

first_name|last_name|first_namef|last_namef    
----------+---------+-----------+----------
田中     |一郎    |タナカ         |イチロウ      
----------+---------+-----------+----------
鈴木       |幸子     |スズキ        |サチコ       

pgAdmin3でバックアップからリストアできない場合のリストアの方法

pgAdmin3でバックアップからリストアしようとしてもリストアボタンがグレーアウトして
押せないためリストアできない場合の対処方法。

PostgreSQL pgadminでフォーマットをPlain(プレーン)でバックアップをした場合のリストアの方法

# su - postgresql
$ psql
$ psql <DB名>

<DB名>=# 
<DB名>=# \i <DBのパス:デリミタは/でないとエラーになる>/<DB名>/yu220130701_dumpall.sql

<DB名>=#

FreeBSD10.0 + SAMBA4 でActiveDirectoryごっこ

[test@sv1.example.local /home/test]# uname -a
FreeBSD test.example.local 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Fri Jan 17 01:46:25 UTC 2014     root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  i386

samba4のインストール

[test@sv1.example.local /home/test]# pkg install samba41-4.1.4_1
[test@sv1.example.local /home/test]# samba -V
Version 4.1.4

fstabとか編集しておく
↓編集前

[test@sv1.example.local /home/test]# cat /etc/fstab
# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/ada0p2     /               ufs     rw   1       1
/dev/ada0p3     none            swap    sw      0       0

↓編集後

[test@sv1.example.local /home/test]# vi /etc/fstab
# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/ada0p2     /               ufs     rw,acls 1       1
/dev/ada0p3     none            swap    sw      0       0


はまったところ...

[test@sv1.example.local /home/test]# samba-tool domain provision --use-rfc2307 --interactive
Realm [EXAMPLE.LOCAL]:
 Domain [EXAMPLE]:
 Server Role (dc, member, standalone) [dc]:
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
 DNS forwarder IP address (write 'none' to disable forwarding) [192.168.0.1]:
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
ldb: module schema_load initialization failed : No such object
ldb: module rootdse initialization failed : No such object
ldb: module samba_dsdb initialization failed : No such object
ldb: Unable to load modules for /var/db/samba4/private/sam.ldb: (null)
samdb_connect failed
VFS connect failed!
ERROR(<class 'samba.provision.ProvisioningError'>): Provision failed - ProvisioningError: Your filesystem or build does not support posix ACLs, which s3fs requires.  Try the mounting the filesystem with the 'acl' option.
  File "/usr/local/lib/python2.7/site-packages/samba/netcmd/domain.py", line 398, in run
    use_rfc2307=use_rfc2307, skip_sysvolacl=False)
  File "/usr/local/lib/python2.7/site-packages/samba/provision/__init__.py", line 2052, in provision
    raise ProvisioningError("Your filesystem or build does not support posix ACLs, which s3fs requires.  Try the mounting the filesystem with the 'acl' option.")

なんかエラーだ...

ググるとこんなの出てきた!

[test@sv1.example.local /home/test]# samba-tool domain provision --use-rfc2307 --interactive --use-ntvfs

で、OKだった。
続きはまた後で...

PostgresqlのTIME型カラムにjavaから入力するときにハマったこと

このゴールデンウィークは、寒かったので外での作業は先送り
なんて、やらなければならないことがあるんでしてただけだけど。

で、ハマっていたのがこれ。

SwingのJTable上でPostgresqlのレコードへデータを入力する際に
カラムの未入力チェックをするというのが今回の課題で
str1は、Postgresql Integer型に入力する値
str3は、Postgresql time型に入力する値

if (str1 != null && !str1.equals("")) {
 if (str3 != null && !str3.equals("")) {
  insertTable(row, col);
  System.out.println("INSERT");
 } else {
  return;
 }
}

こんなコードで実行するも、NullPointerExceptionでことごとくエラーに...

で、解はというと当たり前ですが

if (str1 != null && !str1.equals("")) {
 if (str3 != null && !str3.equals("00:00:00")) {
  insertTable(row, col);
  System.out.println("INSERT");
 } else {
  return;
 }
}

time型フォーマットね。str3 != nullはいらんかも。
つまりこれで、この連休潰したった...orz

Java + PostgreSQL でデータベースアプリを作成中

ゴールデンウィークに突入しましたが
お金 + 予定 は無いのですが、時間はあるので
javaでデータベースアプリを作成中です。
といってもC#で作ったアプリをjavaに移植ですが...

IDE:
Eclipse Java EE IDE for Web Developers.

Version: Juno Service Release 2
Build id: 20130225-0426

DB:
PostgreSQL 9.2.1

Client:
Windows 7 professional SP1

Server:
FreeBSD 9.1-RELEASE

本日は、日付フォーマットとプリペアードステートメントのお勉強を
させていただいた。まだまだ、これからだな〜。