主要功能:把excel数据读取到数据库中.之后再把每个字段里的数据去掉分隔符和英文把提取的数据再分别存入数据库中.在这过程中中文一点问题都没有.但是如果是日语再去掉英文字符后再存入数据库就存在非法字符.不知道具体是什么原因.这个是错误SQL:'insert into translate2(translate)values('腕'#0'')'
截取的原句:CASIO (カシオ) 腕時計 スタンダードウォッチ AW-80-1AJF メンズ正确的SQL:应该是 'insert into translate2(translate)values('腕時計')'错误信息:
Project Project1.exe raised exception class EOleException with message '[Microsoft][ODBC Microsoft Access Driver] 字符串的语法错误 在查询表达式 ''腕' 中。'. Process stopped. Use Step or Run to continue.请高手帮忙啊!急
截取的原句:CASIO (カシオ) 腕時計 スタンダードウォッチ AW-80-1AJF メンズ正确的SQL:应该是 'insert into translate2(translate)values('腕時計')'错误信息:
Project Project1.exe raised exception class EOleException with message '[Microsoft][ODBC Microsoft Access Driver] 字符串的语法错误 在查询表达式 ''腕' 中。'. Process stopped. Use Step or Run to continue.请高手帮忙啊!急
解决方案 »
- 怎么取得cxgrid的当前记录的某个字段的值?
- 再议修改IP地址
- 如何判断输入的字符串是否为两个字母加四个数字?
- 写个小软件 将<input type="checkbox" name="checkbox2" value="checkbox">等控件转换成.NET服务器端的控件;页面格式不能改变;请问这个
- 小问题, 肯请高手指点, 谢谢!
- 如何判断dbchart中的某条线是否存在,若则把这条线取消,应该怎么做啊(这些都需用代码动态实现),在线急急急啊
- 提一个问题,我不是很清楚!
- 一个SQL SERVER存储过程序的问题
- RMb求助软件界面配色贴图方案!!!!!!!
- 请教ADOStoredProc的用法!!!
- 我会点delhi 想学去北大青鸟系统学下软件开发,可是他们不教delhi,教.net,那我会点delphi基础不是白学了吗?
- TADODataSet Filter 多条件过滤问题
2.去掉分隔符、英文后数据是否正确?
我觉得可能是去掉英文部分代码的问题。
var
table, x, sql,p: WideString;
i, j, Count: integer;
reg: TPerlRegEx;
list: tstrings;
begin
ADOQuery2.Close;
ADOQuery2.sql.Clear;
ADOQuery2.sql.Add('select count(*) as i from translate1');
ADOQuery2.Open; ADOQuery1.Close;
ADOQuery1.sql.Clear;
ADOQuery1.sql.Add('SELECT * FROM translate1');
ADOQuery1.Open;
for i := 0 to ADOQuery2.fieldByName('i').Value - 1 do
begin
p := ComboBox1.Text;
if ComboBox1.Text ='' then
begin
showmessage('请输入要截取的字段!');
exit;
end
else
begin
table := ADOQuery1.fieldByName(p).AsString;
list := tstringlist.create;
reg := TPerlRegEx.create(nil);
list.Text := table;
reg.Subject := list.Text;
list.Clear;
reg.RegEx := '[\w-\s()/.:,&]';
reg.Split(list, MaxInt);
reg.Options := [preSingleLine];
x := reg.Subject;
for Count := 0 to list.Count - 1 do
begin
x := list.Strings[Count];
// p:=AnsiToUtf8(x);
//P:=codeDeUTF8(x);
if x = '' then
sql := 'insert into+ translate2(translate)values' + '(' + quotedstr(x) + ')'
else
begin
sql := 'insert into translate2(translate)values' + '(' + quotedstr(x) + ')';
ADOQuery3.Close;
ADOQuery3.sql.Clear;
ADOQuery3.sql.Add(sql);
ADOQuery3.ExecSQL;
end;
end;
ADOQuery1.next;
end;
end;
FreeAndNil(reg);
list.Free;
end;
这是我的那一段代码!
改为table := ADOQuery1.fieldByName(p).Value;
支持Unicode码
而Char , String 是 ASC 编码
僵哥 说的有道理
类似table := ADOQuery1.fieldByName(p).AsString;
改为table := ADOQuery1.fieldByName(p).Value;
我也该了 可是还是不行.
reg.Replacement := '-';
reg.ReplaceAll;
在这句代码的时候就已经出现了 乱码~~~~~~
TPerlRegEx需要换WideString支持的.