LONG VARCHAR - 从 table 读取到前端 (C#),然后将值插入/更新到 table
LONG VARCHAR - Read from table to Front (C#) then INSERT / UPDATE value to a table
我正在使用 C# 中的 DatAdapter.Fill 从 SqlBase DB 读取 table 信息,它适用于除 LONG VARCHAR 之外的任何变量类型,在本例中它在 C# 中转换为 String 类型,如果我添加一个观察对象变量,我会看到一些奇怪的字符,所以稍后当我尝试 insert/update 另一个 table (在另一个数据库中)它失败。
我知道即使 C# 中的值没问题我也不能按原样插入它,文档说我应该将值绑定到一个变量以便能够插入 table,但我不确定该怎么做,因为我在 C# 中创建脚本 运行 in SqlBase,我没有从 C# 直接采取行动,即使我可以'我无法正确读取该值,因为它转换为带有奇怪数字的字符串,这个 LOAG VARCHAR 是否像 Sql 服务器中的 VARBINARY?我想是的,因为我有问题的专栏是一个标志,就像图片一样。
所以简而言之,有什么办法可以
- 从 .NET 中读取一个 long varchar,然后..
- ..将值插入/更新到 table?
时使用它
(1) 是 .NET,但 (2) 是一个 sql 脚本 运行 在 Sqlbase 上使用 SqlTalk。
谢谢!
建议您使用 SQLTalk 命令将 Long 数据卸载到平面文件。这样你就会得到可读的数据。如果需要,可以使用 C# 读取平面文件,并用它做任何想做的事,但是要使用 SQLTalk re-load 将数据转换为另一个 table,您需要使用特定的语法。转到此处:SQLBase Manuals ( all versions ) 提取适用于您正在使用的 SQLBase 版本的手册,并且 1) 从 'SQLBase Language Reference' 阅读 UNLOAD 以将长数据导出到平面文件中(有不同的 snytax给出不同的结果)。然后 2) 阅读 'SQLTalk Command Reference' 中的 'Examples of Bind Variables for Long data' ,因为您必须设置 LONG VARCHAR 数据以绑定变量。
将长数据插入 LONG VARCHAR 或 LONG NVARCHAR 或 LONG BINARY 列时,在其前面加上 $LONG 关键字。然后您可以在下一行开始输入数据,并在连续的行中继续输入。要标记文本结束,请在新行中输入双斜杠 (//)。例如
INSERT INTO BIO (NAME, BIO) VALUES (:1,:2)
\
SHAKESPEARE, $LONG
William Shakespeare was born in Stratford-on-Avon on
April 16, 1564. He was England's most famous poet and
dramatist. . . . .. . .
He died in 1616, leaving his second best bed to his wife.
//
如果 LONG (N)VARCHAR 或 LONG VARBINARY 列的数据来自文件,请在 $LONG 关键字后输入文件名。例如
INSERT INTO BIO (NAME, BIO) VALUES (:1,:2)
\
SHAKESPEARE, $LONG shakes.txt
JONSON,$LONG jonson.txt
O'NEILL,$LONG oneill.txt
/
更新长数据例如
UPDATE TABLE EXPENSES SET COMMENTS = :1 WHERE DATE = :2
\
"Beltran Tree Service", 1/1/94 "Hercules", 1/2/94
"Checkup", 1/3/94
/
我正在使用 C# 中的 DatAdapter.Fill 从 SqlBase DB 读取 table 信息,它适用于除 LONG VARCHAR 之外的任何变量类型,在本例中它在 C# 中转换为 String 类型,如果我添加一个观察对象变量,我会看到一些奇怪的字符,所以稍后当我尝试 insert/update 另一个 table (在另一个数据库中)它失败。
我知道即使 C# 中的值没问题我也不能按原样插入它,文档说我应该将值绑定到一个变量以便能够插入 table,但我不确定该怎么做,因为我在 C# 中创建脚本 运行 in SqlBase,我没有从 C# 直接采取行动,即使我可以'我无法正确读取该值,因为它转换为带有奇怪数字的字符串,这个 LOAG VARCHAR 是否像 Sql 服务器中的 VARBINARY?我想是的,因为我有问题的专栏是一个标志,就像图片一样。
所以简而言之,有什么办法可以
- 从 .NET 中读取一个 long varchar,然后..
- ..将值插入/更新到 table? 时使用它
(1) 是 .NET,但 (2) 是一个 sql 脚本 运行 在 Sqlbase 上使用 SqlTalk。
谢谢!
建议您使用 SQLTalk 命令将 Long 数据卸载到平面文件。这样你就会得到可读的数据。如果需要,可以使用 C# 读取平面文件,并用它做任何想做的事,但是要使用 SQLTalk re-load 将数据转换为另一个 table,您需要使用特定的语法。转到此处:SQLBase Manuals ( all versions ) 提取适用于您正在使用的 SQLBase 版本的手册,并且 1) 从 'SQLBase Language Reference' 阅读 UNLOAD 以将长数据导出到平面文件中(有不同的 snytax给出不同的结果)。然后 2) 阅读 'SQLTalk Command Reference' 中的 'Examples of Bind Variables for Long data' ,因为您必须设置 LONG VARCHAR 数据以绑定变量。 将长数据插入 LONG VARCHAR 或 LONG NVARCHAR 或 LONG BINARY 列时,在其前面加上 $LONG 关键字。然后您可以在下一行开始输入数据,并在连续的行中继续输入。要标记文本结束,请在新行中输入双斜杠 (//)。例如
INSERT INTO BIO (NAME, BIO) VALUES (:1,:2)
\
SHAKESPEARE, $LONG
William Shakespeare was born in Stratford-on-Avon on
April 16, 1564. He was England's most famous poet and
dramatist. . . . .. . .
He died in 1616, leaving his second best bed to his wife.
//
如果 LONG (N)VARCHAR 或 LONG VARBINARY 列的数据来自文件,请在 $LONG 关键字后输入文件名。例如
INSERT INTO BIO (NAME, BIO) VALUES (:1,:2)
\
SHAKESPEARE, $LONG shakes.txt
JONSON,$LONG jonson.txt
O'NEILL,$LONG oneill.txt
/
更新长数据例如
UPDATE TABLE EXPENSES SET COMMENTS = :1 WHERE DATE = :2
\
"Beltran Tree Service", 1/1/94 "Hercules", 1/2/94
"Checkup", 1/3/94
/