.net平台C#调用ODBC插入jpg格式图片到Filemaker(苹果公司数据库)数据库

oO寒枫Oo 2011-02-17 11:22:58
初次发帖(一定会结贴!~~)
有谁用过Filemaker数据库的来帮帮忙啊。

现在用代码可以将图片正确的以二进制插入到MYSQL,SQL server数据库,这个是没有问题的。

但是当图片以二进制插入到Filemaker数据库中之后(此时用到filemaker自带的函数 PutAs进行转化),数据不对,打开是空的。

下面是部分C#代码,有知道的大侠来帮帮忙啊

string connectString = "DRIVER={DataDirect 32-BIT SequeLink 5.5};Server=localhost;DataBase=DataBaseName;uid=userName;pwd=123456;";
string cOdbcConnection conn = new OdbcConnection(connectString);
conn.Open();

byte [] productPic ;//图片假设已经转化成二进制格式,并且已赋值
string sql = string.Format("INSERT INTO products (name,picture) ('AAAA', PutAs( ‘"+ productPic +"’ ,'JEPG' )");
//PutAs 是Filemaker数据库的函数,作用是把插入变量转化成可以图片格式,以便数据库识别。PutAs(‘插入变量’,‘JEPG’)。

OdbcCommand command = new OdbcCommand(sql,conn); //conn 连接值存在。
commad.ExecuteNoQuery();

conn.Close();

另外有关Filemaker利用ODBC JDBC进行操作的帮助文档在这个网址可以找到(插入的方法在第42页)。我也用这上面的方法进行实验,但是一直没有成功。不知道问题出在哪里。希望大家都来帮帮忙。
URL:http://www.filemaker.com/support/product/docs/fmp/fm11_odbc_jdbc_guide_en.pdf
期待您的回答
...全文
476 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
大道曙光 2013-11-08
  • 打赏
  • 举报
回复
引用 5 楼 lxpbs8851 的回复:
这个问题现在已经解决了。 原因在于使用OBDC后,sql的占位符必须用? 。 正确的代码应该是这样写的

string  connectString = "DRIVER={DataDirect 32-BIT SequeLink 5.5};Server=localhost;DataBase=DataBaseName;uid=userName;pwd=123456;";
string cOdbcConnection conn = new OdbcConnection(connectString);
conn.Open();

byte [] productPic ;//图片假设已经转化成二进制格式,并且已赋值
string sql = string.Format("INSERT INTO products (name,picture) ('AAAA', PutAs( ? ,'JEPG'   )");
//1)PutAs 是Filemaker数据库的函数,作用是把插入变量转化成可以图片格式,以便数据库识别。PutAs(‘插入变量’,‘JEPG’)。
//2)特别占位符要用问号 "?"

OdbcCommand command = new OdbcCommand(sql,conn); //conn 连接值存在。
 OdbcParameter param = new OdbcParameter();// 新建一个参数
 param.OdbcType = OdbcType.Image; // 参数设置为 Image类型
 param.Value = productPie;         // 给参数赋值
 command.Parameters.Add(param);   //在命令中添加参数
 command.ExecuteNonQuery();   //执行命令

conn.Close();


大赞!!!
okkon 2013-03-16
  • 打赏
  • 举报
回复
估计版本不同也会有差异的
oO寒枫Oo 2011-06-17
  • 打赏
  • 举报
回复
希望能够帮助遇到同样问题的人、。
oO寒枫Oo 2011-06-17
  • 打赏
  • 举报
回复
这个问题现在已经解决了。
原因在于使用OBDC后,sql的占位符必须用? 。
正确的代码应该是这样写的

string connectString = "DRIVER={DataDirect 32-BIT SequeLink 5.5};Server=localhost;DataBase=DataBaseName;uid=userName;pwd=123456;";
string cOdbcConnection conn = new OdbcConnection(connectString);
conn.Open();

byte [] productPic ;//图片假设已经转化成二进制格式,并且已赋值
string sql = string.Format("INSERT INTO products (name,picture) ('AAAA', PutAs( ? ,'JEPG' )");
//1)PutAs 是Filemaker数据库的函数,作用是把插入变量转化成可以图片格式,以便数据库识别。PutAs(‘插入变量’,‘JEPG’)。
//2)特别占位符要用问号 "?"

OdbcCommand command = new OdbcCommand(sql,conn); //conn 连接值存在。
OdbcParameter param = new OdbcParameter();// 新建一个参数
param.OdbcType = OdbcType.Image; // 参数设置为 Image类型
param.Value = productPie; // 给参数赋值
command.Parameters.Add(param); //在命令中添加参数
command.ExecuteNonQuery(); //执行命令

conn.Close();


dabao1026 2011-06-17
  • 打赏
  • 举报
回复
我装的是fmp_trial_fm_11.0.2.220.exe, 在ODBC设置过程中,在最后的连接测试阶段看到的驱动信息是"FileMaker ODBC ドライバ (32-bit) 11.2.70.0",
那么链接字符串是不是该改成如下啊?
string connectString = "DRIVER={FileMaker ODBC ドライバ (32-bit) 11.2.70.0};
Server=localhost;DataBase=DataBaseName;uid=userName;pwd=123456;";
string cOdbcConnection conn = new OdbcConnection(connectString);
conn.Open();

还有DataBase是不是数据库的名字啊?还是ODBC配置时指定的数据源名字啊?
oO寒枫Oo 2011-02-22
  • 打赏
  • 举报
回复
怎么没人回答?
内容概要:本文详细介绍了基于Matlab实现的“梯级水光互补系统最大化可消纳电量期望短期优化调度模型”,属于电力系统领域高水平科研成果的复现(EI级别)。该模型聚焦于梯级水电站与光伏发电系统的协同优化调度,通过构建短期优化调度框架,旨在提升可再生能源的电量消纳能力并最大化系统综合效益。研究采用先进的数学优化方法对水光资源进行联合调度,充分考虑了光伏出力的不确定性、水资源约束、系统运行边界条件及电力平衡要求,实现了在多重约束下的电量期望最大化目标。模型不仅具备严谨的理论基础,还具有良好的工程应用前景,适用于新能源高比例渗透背景下电力系统的优化调度研究与实践。; 适合人群:具备电力系统分析、可再生能源利用或优化建模背景的研究生、科研人员及工程技术人员,特别适合致力于复现高水平学术论文(EI/顶刊)研究成果的学习者与开发者。; 使用场景及目标:① 学习并掌握梯级水电与光伏系统协同调度的建模思路与关键技术;② 熟悉基于Matlab的混合整数线性规划(MILP)或其他非线性优化方法在能源系统中的实际应用;③ 提升在新能源消纳、短期调度优化等方向的科研建模能力与代码实现水平,支持二次开发与创新研究。; 阅读建议:建议结合Matlab代码与优化理论同步研读,重点理解目标函数的设计逻辑、各类物理与运行约束的数学表达以及求解器的调用流程,推荐使用YALMIP等建模工具辅助实现,以提高模型构建效率与可读性,便于深入理解与后续拓展。

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧