mysql - 使用 PowerShell 将 MySQL blob(映像)迁移到 FileMaker 容器
问题描述
在搜索中,我找到了许多其他人尝试过,但没有一个成功。
这就是问题所在。我想将我存储在 MySQL 服务器上的一堆图像以 blob 的形式存储起来,并将它们移动到 FileMaker 容器中。
我得到的最好的线索是 putas 命令。它看起来像 putas ('$Image','JPEG')。
我的具体应用如下。$DataSet.Image1 是存储为“0xFFD8....”的 JPEG 文件。这种格式的数据很可能是问题所在,但我不知道首先需要将其转换为什么。
$cmd.CommandText = "update Checklists set Image1 = PutAs('$($DataSet.Image1)', 'JPEG')"
$cmd.ExecuteNonQuery();
我一直得到的只是语法错误,但我已经尝试了许多不同的语法,无论我做什么我都无法让它去。
我非常希望看到有人成功发布他们的示例。也欢迎任何其他想法或解决方法。
编辑:这是一些额外的信息。Skeleton Key 的 Greg Lane 给出了这个例子,但我不知道如何将它翻译成 PowerShell。
import java.sql.*; import java.io.*;
def url = "jdbc:filemaker://localhost/fmserver_sample";
def driver = "com.filemaker.jdbc.Driver";
def user = "admin";
def password = "";
System.setProperty("jdbc.drivers", driver);
connection = DriverManager.getConnection (url, user, password);
filename = "/Users/Greg/Pictures/vacation/DSC_0202.jpg";
file = new File (filename);
inputstream = new FileInputStream (filename);
sql = "INSERT INTO english_nature (ID, img) VALUES (-1, PutAs(?, 'JPEG'))";
pstatement = connection.prepareStatement ( sql );
pstatement.setBinaryStream (1, inputstream, (int)file.length ());
pstatement.execute ();
//cleanup
pstatement = null;
inputstream = null;
file = null;
connection.close();
解决方案
我想到了。对于未来的任何人来说,这就是你如何做到的。
$cmd.CommandText = "update Checklists set Image1 = PutAs(?, 'JPEG') where serial = '$($DataSet.serial)' AND ChecklistNumber = 1"
$cmd.Parameters.Add('?', $DataSet.Image1)
$cmd.Prepare()
$cmd.ExecuteNonQuery();
推荐阅读
- json - 使用 jq 进行大小写转换时出现错误“爆炸输入必须是字符串”
- php - 安装 Bitexchange 脚本时在浏览器中获取 PHP 代码
- php - 如何在codeigniter中从一个页面重定向到另一个页面
- html - 水平滚动,不要掉到下一行
- python - python - 如何将列表中的所有索引更改/转换为python语言中的整数?
- javascript - 如何在 Dynamics 365 门户中触发 webFormClientValidate
- r - 使用 gridExtra 在 ggplot 构面之外添加文本时图像失真
- java - JDBC getGeneratedKeys() 方法是否总是与插入元素的顺序相同
- asp.net-mvc - 无法将部分视图中的复选框绑定到主模型(MVC)
- linux - VSTS 构建问题文件未找到“git”-Linux 私有代理