当然连 SQL SERVER 用ADO是首选了,但某些场合还是要用到BDE的。
好像一定要先建一个 ODBC DSN ,然后将DATABASE的PARAMS中这样设置:
"ODBC DSN=localserver
USER NAME=sa
PASSWORD="
但如果我不先建localserver数据源,我怎么设置参数连接SQL SERVER呢? 用BDE连接上SQL SERVER之后呢,又发觉一个奇怪的问题:
Northwind表中有一个Products表,我用网格控件取表的字段时发觉凡是char(varchar)数据类型的字段就取不到,列表中根本就看不到。
这可能是一个老问题了,只是我在这里还是盲点,各位别见笑。
好像一定要先建一个 ODBC DSN ,然后将DATABASE的PARAMS中这样设置:
"ODBC DSN=localserver
USER NAME=sa
PASSWORD="
但如果我不先建localserver数据源,我怎么设置参数连接SQL SERVER呢? 用BDE连接上SQL SERVER之后呢,又发觉一个奇怪的问题:
Northwind表中有一个Products表,我用网格控件取表的字段时发觉凡是char(varchar)数据类型的字段就取不到,列表中根本就看不到。
这可能是一个老问题了,只是我在这里还是盲点,各位别见笑。
Database.Connected:=False;
Database.Params.Values['user name']:='sa';
Database.Params.Values['pass word']:='';
Database.LoginPrompt:=false;
database.DatabaseName:='misdata';
database.Connected:=true;
with query1 do
begin
close;
sql.clear;
sql.add('select * from person where id=:user');
parambyname('user').asstring :=i_user.text;
try
open;
if fields[1].AsString=i_passwd.Text then
begin
showmessage('ok');
F_main.login:=True;
end
else
Application.MessageBox('请重新输入密码。'+#13+'注意大小写!','密码错误',MB_OK);
except
Application.MessageBox('请确认用户名大小写是否正确!','无此用户',MB_OK);
end;
end;
if F_main.login then F_login.Close;
end;
MSSQL 的参数怎样设置啊?
不要吐。
drivername 选择 mssql
指定databasename:test双击 params
指定:
DATABASE NAME=myinfosys // 这里是你的sqlserver 上的databse 设备
SERVER NAME=jinke-svr // 这是存放mssqlserver 的服务器名称
USER NAME=sa // 超级用户
PASSWORD= // 密码
点击connected =true
ok
我刚才按: IUPRG(遨云独行,琢符弄图) 老兄的方法连,连上了.
我就打开本地SQL SERVER2000中的NORTHWIND数据库中的PRODUCTS表,结果还是VARCHAR,NVHARCHAR,CHAR数据类型的字段还是不能取出,报错:
Translate Error. Value out of bounds.
尝试转换源字段中因语法错误而停止的数据。
1.先在BDE中建一個新的庫,類型為MSSQL
2.然後在右邊的屬性中設定:
datebase name= SQl 中要連的數據庫名
server name=本機名稱
host name=本機名稱
user name=sa
3.最後刷新就可以了
表格时, 都需要把一定数量的数据取出, 假如数据数量极大的话, 这方面的负担也不少呢.
给 Delphi 打上一个 Update Pack 试一下。
怎么会一个数据引擎居然连 UNICODE 都不支持呢
另外可以在Delphi中动态配置BDE;以下代码仅供参考(这是本地SQLServer):
function configbde(const servername,aliasename,datafile: string): boolean;
var
paramstr:Tstrings;
function getcomputename:string;
var
cname:array [0..50] of char;
lens:Dword;
begin
lens:=MAX_COMPUTERNAME_LENGTH + 1;
getcomputername(cname,lens);
result:=cname;
end;
begin
paramstr:=Tstringlist.Create;
try
session.GetAliasNames(paramstr);
if paramstr.IndexOf(aliasename)>=0 then
session.DeleteAlias(aliasename);
paramstr.Clear;
if trim(servername)='' then
paramstr.Add('SERVER NAME='+trim(getcomputename))
else
paramstr.Add('SERVER NAME='+trim(servername));
paramstr.Add('DATABASE NAME='+datafile);
paramstr.add('USER NAME=用户');
session.AddAlias(aliasename,'MSSQL',paramstr);
try
session.SaveConfigFile;
except
messagebox(0,pchar('数据配置错误!'),pchar('提示'),mb_ok or mb_iconwarning);
result:=false;
exit;
end;
finally
paramstr.Free;
end;
result:=true;
end;