小编ifd*_*dog的帖子

Postgresql查询嵌套JSONB字段中的对象

我正在使用PostgreSQL 9.6,我有一个名为"ItemDbModel"的表,其中有两列如下:

No integer,
Content jsonb
Run Code Online (Sandbox Code Playgroud)

说我把很多记录像:

 "No": 2, {"obj":"x","Item": {"Name": "BigDog", "Model": "NamedHusky", "Spec":"red dog"}}
 "No": 4, {"obj":"x","Item": {"Name": "MidDog", "Model": "NamedPeppy", "Spec":"no hair"}}
 "No": 5, {"obj":"x","Item": {"Name": "BigCat", "Model": "TomCat", "Spec":"blue color"}}
Run Code Online (Sandbox Code Playgroud)

如何查询表格:

  1. 记录"Content.Item.Name"包含"Dog" "Content.Item.Spec"包含"red"的记录.
  2. "Content.Item.Name"包含"Dog" "Content.Item.Spec"的记录包含"red".
  3. 记录"Content.Item" 中的任何 json字段包含"dog"的位置.

并按"Content.Item.Name.length"排序?

谢谢!

postgresql json jsonb postgresql-9.6 postgresql-12

16
推荐指数
1
解决办法
9739
查看次数

使用 P/Invoked GlobalSize 时堆损坏

我正在用 C# 开发一个与 Windows 剪贴板相关的应用程序。由于Dot Net Clipboard库有很多缺点(STA、无法打开剪贴板等),我决定直接使用系统API。

我想要做的是备份每种格式的数据(尽可能多,如果不是全部),将它们推入堆栈,然后再次弹出到剪贴板。如果您尝试过 AutoHotKey,这就是其中的“ ClipboardAll ”所做的。

当我尝试获取数据时出现问题,这是我为 Pinvoke 编写的方式:

[DllImport("user32.dll", SetLastError = true)]
public static extern bool OpenClipboard(IntPtr hWndNewOwner);

[DllImport("user32.dll", SetLastError = true)]
public static extern bool CloseClipboard();

[DllImport("user32.dll")]
public static extern IntPtr GetClipboardData(uint uFormat);

[DllImport("user32.dll", SetLastError = true)]
public static extern uint EnumClipboardFormats(uint format);

[DllImport("kernel32.dll", SetLastError = true)]
public static extern IntPtr GlobalLock(IntPtr hMem);

[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GlobalUnlock(IntPtr hMem);

[DllImport("kernel32.dll")]
public static extern UIntPtr GlobalSize(IntPtr hMem);
Run Code Online (Sandbox Code Playgroud)

这就是我使用它们的方式:

var x = …
Run Code Online (Sandbox Code Playgroud)

.net c# windows pinvoke winapi

6
推荐指数
1
解决办法
626
查看次数

标签 统计

.net ×1

c# ×1

json ×1

jsonb ×1

pinvoke ×1

postgresql ×1

postgresql-12 ×1

postgresql-9.6 ×1

winapi ×1

windows ×1