{"id":149,"date":"2020-05-09T18:12:30","date_gmt":"2020-05-09T09:12:30","guid":{"rendered":"https:\/\/r-side.net\/?p=149"},"modified":"2020-05-09T18:30:50","modified_gmt":"2020-05-09T09:30:50","slug":"post-149","status":"publish","type":"post","link":"https:\/\/r-side.net\/kw\/?p=149","title":{"rendered":"C#\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306bAccess\u306eMDB\u3092\u4f7f\u7528\u3059\u308b"},"content":{"rendered":"<p>C#\u304b\u3089\u3001Access\u306e\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u306a\u3044\u74b0\u5883\u3067\u3001MDB\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\u306e\u30e1\u30e2\u3002<br \/>\n\u307e\u305a\u306f\u3001\u53c2\u7167\u8a2d\u5b9a\u3067Microsoft\u00a0ADO\u00a0Ext\u00a0X.X\u00a0for\u00a0DDL\u00a0and\u00a0Security\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-thumb710 wp-image-150\" src=\"https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/05\/ADO\u53c2\u7167-710x488.png\" alt=\"\" width=\"710\" height=\"488\" srcset=\"https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/05\/ADO\u53c2\u7167-710x488.png 710w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/05\/ADO\u53c2\u7167-300x206.png 300w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/05\/ADO\u53c2\u7167-768x528.png 768w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/05\/ADO\u53c2\u7167-530x364.png 530w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/05\/ADO\u53c2\u7167-565x388.png 565w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/05\/ADO\u53c2\u7167-725x498.png 725w, https:\/\/r-side.net\/wordpress\/wp-content\/uploads\/2020\/05\/ADO\u53c2\u7167.png 800w\" sizes=\"auto, (max-width: 710px) 100vw, 710px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\uff11\uff0eMDB\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b<\/p>\n<pre class=\"lang:c# decode:true\" title=\"\u63a5\u7d9a\u6587\u5b57\u5217\">private string DBSource = \r\n    \"Provider=Microsoft.Jet.OLEDB.4.0;\" + \/\/\u30d7\u30ed\u30d0\u30a4\u30c0 (32bit\u306e\u307f)\r\n    \"Data Source=D:\\\\TestFile.mdb;\" +     \/\/\u30d5\u30a1\u30a4\u30eb\u540d\u306e\u6307\u5b9a\r\n    \"Jet OLEDB:Engine Type=5\";            \/\/Engine Type \u306f 5 \r\n<\/pre>\n<p>\u203b\u63a5\u7d9a\u6587\u5b57\u5217\u306f\u3001\u4ee5\u964d\u306e\u5185\u5bb9\u3067\u3082\u5171\u901a\u3067\u3059\u3002<\/p>\n<p>64Bit\u74b0\u5883\u3067\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001&#8221;Provider=Microsoft.ACE.OLEDB.12.0;&#8221;\u306b\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<br \/>\n\u305f\u3060\u3057\u3001Access\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001<br \/>\nMicrosoft Access \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9 \u30a8\u30f3\u30b8\u30f3 2016 \u518d\u9812\u5e03\u53ef\u80fd\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<br \/>\n\u306a\u3069\u306e\u3001\u8ffd\u52a0\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u5fc5\u8981\u306b\u306a\u308b\u3068\u306e\u4e8b\u3002<\/p>\n<pre class=\"lang:c# decode:true\" title=\"MDB\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210\">\/\/Access\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210\r\nprivate void AccessMdbCreate(){\r\n    ADOX.Catalog cat = new ADOX.Catalog();\r\n    cat.Create(DBSource);\r\n    cat = null;\r\n}<\/pre>\n<p>\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306a\u3069\u306f\u3001\u4f8b\u5916\u304c\u767a\u751f\u3059\u308b\u306e\u3067Try\u306b\u3066\u5bfe\u5fdc\u3057\u3088\u3046\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\uff12\uff0e\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3059\u308b<\/p>\n<pre class=\"lang:c# decode:true\" title=\"\u30c6\u30fc\u30d6\u30eb\u306e\u4f5c\u6210\">\/\/Table\u306e\u4f5c\u6210\r\nprivate void AccessMdbAddTable(){\r\n    try{\r\n        \/\/MDB\u30d5\u30a1\u30a4\u30eb\u306b\u63a5\u7d9a\u3059\u308b\r\n        ADOX.Catalog cat = new ADOX.Catalog();\r\n        cat.let_ActiveConnection(DBSource);\r\n        \/\/\u30c6\u30fc\u30d6\u30eb\u306e\u4f5c\u6210\r\n        ADOX.Table table = new ADOX.Table();\r\n        table.ParentCatalog = cat;\r\n        table.Name = \"TABLE1\";                              \/\/\u30c6\u30fc\u30d6\u30eb\u540d\r\n\r\n        \/\/\u5217\u540d\uff11\u3000Id(\u6574\u6570\u5024)\u306e\u4f5c\u6210\r\n        ADOX.Column columnId = new ADOX.Column();\r\n        columnId.ParentCatalog = cat;\r\n        columnId.Type = ADOX.DataTypeEnum.adInteger;                        \/\/\u4e8b\u524d\u306b\u8a2d\u5b9a\u3057\u306a\u3044\u3068\"AutoIncrement\"\u3067\u30a8\u30e9\u30fc\u3068\u306a\u308b\r\n        columnId.Name = \"Id\";                                               \/\/\u5217\u540d\r\n        columnId.Properties[\"Jet OLEDB:Allow Zero Length\"].Value = false;   \/\/\u7a7a\u767d\u3092\u8a31\u53ef\u3057\u306a\u3044\r\n        columnId.Properties[\"AutoIncrement\"].Value = true;                  \/\/\u81ea\u52d5\u63a1\u756a\u3068\u3059\u308b\r\n        table.Columns.Append(columnId, ADOX.DataTypeEnum.adInteger);        \/\/\u5f62\u3092\u6307\u5b9a\u3057\u3066\u8ffd\u52a0\r\n        \/\/\u5217\u540d\uff12\r\n        ADOX.Column columnName = new ADOX.Column();\r\n        columnName.ParentCatalog = cat;\r\n        columnName.Name = \"Name\";                                           \/\/\u5217\u540d\r\n        columnName.Properties[\"Jet OLEDB:Allow Zero Length\"].Value = true;  \/\/\u7a7a\u767d\u3092\u8a31\u53ef\u3059\u308b\r\n        table.Columns.Append(columnName, ADOX.DataTypeEnum.adWChar, 64);    \/\/\u5f62\u3092\u6307\u5b9a\u3057\u3066\u8ffd\u52a0 (64\u6587\u5b57)\r\n        \/\/\u4e3b\u30ad\u30fc\u306e\u8a2d\u5b9a\r\n        table.Keys.Append(\"PrimaryKey\", ADOX.KeyTypeEnum.adKeyPrimary, \"Id\", \"\", \"\");\r\n        \/\/\u8907\u6570\u8a2d\u5b9a\u3059\u308b\u5834\u5408\r\n        \/\/ADOX.Key key = new ADOX.Key();\r\n        \/\/key.Name = \"PrimaryKey\";\r\n        \/\/key.Type = ADOX.KeyTypeEnum.adKeyPrimary;\r\n        \/\/key.Columns.Append(\"Id\");\r\n        \/\/key.Columns.Append(\"Name\");\r\n        \/\/table.Keys.Append(key);\r\n\r\n        \/\/\u30c6\u30fc\u30d6\u30eb\u3092\u8ffd\u52a0\r\n        cat.Tables.Append(table);\r\n        \/\/\u63a5\u7d9a\u3092\u9589\u3058\u308b\r\n        cat.ActiveConnection.Close();\r\n\r\n        MessageBox.Show(\"\u30c6\u30fc\u30d6\u30eb\u306e\u4f5c\u6210\u7d42\u4e86\", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);\r\n    }catch (Exception ex){\r\n        MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);\r\n    }\r\n}<\/pre>\n<pre class=\"lang:c# decode:true\" title=\"\u30c6\u30fc\u30d6\u30eb\u3092\u3082\u3063\u3068\u7c21\u5358\u306b\u4f5c\u6210\u3057\u305f\u3044\u5834\u5408\">\/\/Table\u306e\u4f5c\u6210\uff08\u7c21\u6613\u7248\uff09\r\nprivate void AccessMdbAddTable2(){\r\n    try{\r\n        \/\/MDB\u30d5\u30a1\u30a4\u30eb\u306b\u63a5\u7d9a\u3059\u308b\r\n        ADOX.Catalog cat = new ADOX.Catalog();\r\n        cat.let_ActiveConnection(DBSource);\r\n        \/\/\u30c6\u30fc\u30d6\u30eb\u306e\u4f5c\u6210\r\n        ADOX.Table table = new ADOX.Table();\r\n        table.Name = \"TABLE2\";\r\n        \/\/\u5217\u306e\u8ffd\u52a0\r\n        table.Columns.Append(\"ID\", ADOX.DataTypeEnum.adInteger);\r\n        table.Columns.Append(\"\u540d\u524d\", ADOX.DataTypeEnum.adVarWChar, 50);\r\n        \/\/\u4e3b\u30ad\u30fc\u306e\u8a2d\u5b9a\r\n        table.Keys.Append(\"PrimaryKey\", ADOX.KeyTypeEnum.adKeyPrimary, \"ID\", \"\", \"\");\r\n\r\n        \/\/\u30c6\u30fc\u30d6\u30eb\u3092\u8ffd\u52a0\r\n        cat.Tables.Append(table);\r\n        \/\/\u63a5\u7d9a\u3092\u9589\u3058\u308b\r\n        cat.ActiveConnection.Close();\r\n\r\n        MessageBox.Show(\"\u30c6\u30fc\u30d6\u30eb\u306e\u4f5c\u6210\u7d42\u4e86\", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);\r\n    }catch (Exception ex){\r\n        MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);\r\n    }\r\n}<\/pre>\n<p>\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001MDB\u30d5\u30a1\u30a4\u30eb\u306b\u63a5\u7d9a\u3057\u3001\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u3001\u5217\u3092\u8ffd\u52a0\u3057\u3066\u3044\u304f\u3002\u5217\u3092\u8ffd\u52a0\u3059\u308b\u969b\u306b\u3001\u7d30\u304b\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8a2d\u5b9a\u3059\u308b\u5834\u5408\u3068\u3001\u3068\u308a\u3042\u3048\u305a\u5217\u3092\u8ffd\u52a0\u3057\u3066\u3057\u307e\u3046\uff12\u30d1\u30bf\u30fc\u30f3\u3002\u65e2\u306b\u5b58\u5728\u3059\u308b\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3068\u4f8b\u5916\u304c\u767a\u751f\u3059\u308b\u3002<\/p>\n<pre class=\"lang:c# decode:true\" title=\"SQL\u6587\u3067\u30c6\u30fc\u30d6\u30eb\u3092\u8ffd\u52a0\u3059\u308b\">\/\/SQL\u6587\u3067\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3059\u308b\r\nprivate void AccessMdbAddTable3(){\r\n    \/\/MDB\u306b\u63a5\u7d9a\r\n    System.Data.OleDb.OleDbConnection Con = new System.Data.OleDb.OleDbConnection();\r\n    Con.ConnectionString = DBSource;\r\n    Con.Open();\r\n    \/\/SQL\u6587\u3092\u5b9f\u884c\r\n    System.Data.OleDb.OleDbCommand command = Con.CreateCommand();\r\n    command.CommandText = \"CREATE TABLE \u4f1a\u54e1(ID COUNTER PRIMARY KEY,\u4f1a\u54e1\u540d CHAR(10),\u30dd\u30a4\u30f3\u30c8 INT,\u5165\u4f1a YESNO,\u30e1\u30e2 MEMO,\u767b\u9332\u65e5 DATE);\";\r\n    command.CommandTimeout = 30;\r\n    command.ExecuteNonQuery();\r\n    command.Dispose();\r\n    \/\/\u63a5\u7d9a\u3092\u9589\u3058\u308b\r\n    Con.Close();\r\n}<\/pre>\n<p>\u3082\u3057\u304f\u306f\u3001SQL\u6587\u3067\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u3066\u307e\u3046\u65b9\u6cd5\u3082\u3042\u308b\u3002\u30dd\u30a4\u30f3\u30c8\u306f\u3001ADOX.Catalog\u3067\u306f\u306a\u304f\u3001System.Data.OleDb.OleDbConnection\u3092\u4f7f\u7528\u3059\u308b\u306e\u3068\u3001SQL\u3068\u7570\u306a\u308a\u3001System.Data.SqlClient.SqlCommand\u3067\u306f\u306a\u304f\u3001System.Data.OleDb.OleDbCommand command\u3092\u4f7f\u7528\u3059\u308b\u4e8b\u3067\u3059\u3002<br \/>\n\u4ee5\u964d\u306e\u9805\u76ee\u3067\u3001\u8aac\u660e\u3057\u307e\u3059\u304c\u3001SQL\u30b3\u30de\u30f3\u30c9\u306e\u5b9f\u884c\u306f\u3001SQL\u30b5\u30fc\u30d0\u306b\u5bfe\u3059\u308b\u65b9\u6cd5\u3068\u307b\u307c\u540c\u69d8\u3067\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\uff13\uff0e\u30c6\u30fc\u30d6\u30eb\u306b\u30c7\u30fc\u30bf\u3092\u8ffd\u52a0\u3059\u308b<\/p>\n<pre class=\"lang:c# decode:true\" title=\"SQL\u6587\u3067\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\">\/\/\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\r\nprivate void AccessMdbAppend(string name){\r\n    \/\/MDB\u306b\u63a5\u7d9a\r\n    System.Data.OleDb.OleDbConnection Con = new System.Data.OleDb.OleDbConnection();\r\n    Con.ConnectionString = DBSource;\r\n    Con.Open();\r\n    \/\/SQL\u6587\u3092\u5b9f\u884c\r\n    System.Data.OleDb.OleDbCommand command = Con.CreateCommand();\r\n    \/\/\u5b9f\u884c\u3059\u308bSQL\u30af\u30a8\u30ea\u30fc\u3092\u6307\u5b9a\r\n    command.CommandText = \"INSERT INTO TABLE1 (Name) VALUES (@Name)\";\r\n    \/\/\u7d50\u679c\u304c\u8fd4\u3063\u3066\u304f\u308b\u307e\u3067\u5f85\u6a5f\u3059\u308b\u79d2\u6570\r\n    command.CommandTimeout = 30;\r\n    \/\/\u5909\u63db\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306e\u8a2d\u5b9a\r\n    \/\/command.Parameters.Add(\"@Name\", System.Data.OleDb.OleDbType.Char).Value = name;             \/\/\u3053\u3061\u3089\u306f\u975e\u63a8\u5968\u3089\r\n    command.Parameters.AddWithValue(\"@Name\", System.Data.OleDb.OleDbType.Char).Value = name;\r\n    \/\/\u6307\u5b9a\u3057\u305f SQL \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\r\n    command.ExecuteNonQuery();\r\n    command.Dispose();\r\n    \/\/\u63a5\u7d9a\u3092\u9589\u3058\u308b\r\n    Con.Close();\r\n}<\/pre>\n<p>\u5fae\u5999\u306b\u9055\u3046\u90e8\u5206\u3068\u3057\u3066\u3001SqlDbType\u304b\u3089\u3001System.Data.OleDb.OleDbType\u306b\u5909\u66f4\u3057\u305f\u308a\u3001Parameters.Add\u306f\u975e\u63a8\u5968\u3067AddWithValue\u3092\u4f7f\u3063\u305f\u308a\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\uff14\uff0e\u30c6\u30fc\u30d6\u30eb\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3059\u308b<\/p>\n<pre class=\"lang:c# decode:true\" title=\"SQL\u6587\u3067\u30c7\u30fc\u30bf\u306e\u53d6\u5f97\">\/\/\u30c7\u30fc\u30bf\u306e\u53d6\u5f97\r\nprivate void AccessMdbSelect(){\r\n    \/\/MDB\u306b\u63a5\u7d9a\r\n    System.Data.OleDb.OleDbConnection Con = new System.Data.OleDb.OleDbConnection();\r\n    Con.ConnectionString = DBSource;\r\n    Con.Open();\r\n    \/\/SQL\u6587\u3092\u5b9f\u884c\r\n    System.Data.OleDb.OleDbCommand command = Con.CreateCommand();\r\n    \/\/\u5b9f\u884c\u3059\u308bSQL\u30af\u30a8\u30ea\u30fc\u3092\u6307\u5b9a\r\n    command.CommandText = \"SELECT * FROM TABLE1\";\r\n    \/\/\u7d50\u679c\u304c\u8fd4\u3063\u3066\u304f\u308b\u307e\u3067\u5f85\u6a5f\u3059\u308b\u79d2\u6570\r\n    command.CommandTimeout = 30;\r\n    \/\/\u6307\u5b9a\u3057\u305f SQL \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066 SqlDataReader \u3092\u69cb\u7bc9\u3059\u308b\r\n    System.Data.OleDb.OleDbDataReader reader = command.ExecuteReader();\r\n    command.Dispose();\r\n    \/\/\u8aad\u307f\u8fbc\u3093\u3060\u30c7\u30fc\u30bf\u3092\u8868\u793a\r\n    while (reader.Read()){\r\n        Console.WriteLine(reader[0].ToString() + \",\" + reader[1].ToString());\r\n        Console.WriteLine(reader[\"Id\"].ToString() + \",\" + reader[\"Name\"].ToString());\r\n    }\r\n    reader.Close();\r\n    \/\/\u63a5\u7d9a\u3092\u9589\u3058\u308b\r\n    Con.Close(); \r\n}<\/pre>\n<p>\u3053\u3061\u3089\u306f\u3001System.Data.SqlClient.SqlDataReader\u304b\u3089\u3001System.Data.OleDb.OleDbDataReader\u306b\u5909\u66f4\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\nAccess\u306eMDB\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3067\u3082\u3001SQL\u30b5\u30fc\u30d0\u30fc\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3068\u307b\u307c\u540c\u7b49\u3067\u3059\u304c\u3001\u4e00\u90e8\u30af\u30e9\u30b9\u540d\u3084\u5217\u6319\u4f53\u306e\u6307\u5b9a\u304c\u7570\u306a\u3063\u3066\u3057\u307e\u3046\u3053\u3068\u304c\u3001\u6b8b\u5ff5\u3067\u3059\u3002\u7c21\u5358\u306a\u30c7\u30fc\u30bf\u306a\u3089\u3001\u3069\u3061\u3089\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f7f\u7528\u3059\u308b\u304b\u9078\u629e\u3067\u304d\u308b\u3068\u3001\u826f\u304b\u3063\u305f\u306e\u3067\u3059\u304c\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C#\u304b\u3089\u3001Access\u306e\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u306a\u3044\u74b0\u5883\u3067\u3001MDB\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\u306e\u30e1\u30e2\u3002 \u307e\u305a\u306f\u3001\u53c2\u7167\u8a2d\u5b9a\u3067Microsoft\u00a0ADO\u00a0Ext\u00a0X.X\u00a0for\u00a0DDL\u00a0and\u00a0Security\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002 &#038;nb [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[27,19],"class_list":["clearfix","post-149","post","type-post","status-publish","format-standard","hentry","category-cs-net-2015","tag-c","tag-sql"],"_links":{"self":[{"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/posts\/149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=149"}],"version-history":[{"count":2,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/posts\/149\/revisions"}],"predecessor-version":[{"id":152,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=\/wp\/v2\/posts\/149\/revisions\/152"}],"wp:attachment":[{"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/r-side.net\/kw\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}