几个delphi书中没提过的数据库问题与我的疑惑和心得(一起讨论)

原创 2005年05月16日 11:29:00

1,ADOConnection和ADOTable在delphi中的使用

ADOConnection和ADOTable在delphi中像许多书中教的那样设置好连接上数据库(我用的SQLServer),运行没有问题。然后我修改,目的是可以修改连接数据库而不用在delphi中修改ADOConnection的ConnectionString属性,还不出现连接对话框。

修改步骤:将LoginPrompt设置为false,将ConnectionString属性清空,添加连接代码

conStr:='Provider=SQLOLEDB.1;Password=1982072019;User ID=sa;Initial Catalog=StorageManagement;Data Source=10.16.99.175';
  try
    loginForm.tempADOConnection.ConnectionString :=conStr;
    loginForm.tempADOConnection.Connected := true;
  except
    messagedlg('数据库连接有误!!请检查DataConfig.XML',mtConfirmation,[mbOk],0);
    Application.Terminate;
  end;

这样程序运行起来,连接数据库是没有问题的。但出现的问题是在dlephi中ADOTable控件是不能连接表的,因为ConnectionString属性没有值。报错为“无效的授权说明”。如何既能在delphi中使用ADOConnection和ADOTable控件,又可以不出现那个讨厌的连接对话框。

2,在delphi中使用sql语句。

因为sql语句中给字符串赋值需要用双引号,而delphi中用单引号括起字符串,我使用遇到了一些问题。我试验的结果是delphi中用两个单引号代替sql语句中的双引号。不知道对不对?

具体如何使用,我还是不太清楚。

3,在delphi 7.0中使用ADOQuery的返回结果,书中介绍使用Params['xxxx'].AsString;

我使用后报错,但有一个光盘的程序这样使用没有报错。我使用的是Parameters['xxxx'],也使用不了.AsString

4,原代码:
====================================================================
if canInsert then
  begin
    with allDataModule.AQ_OtherMaterielOut do
    begin
      Close;
      SQL.Clear;
      SQL.Text:='insert otherMaterielOut(materielID,amount) values (:insertID,:insertAmount,)';
      Parameters[0].Value:=myMateriel;
      Parameters[1].Value:=myAmount; 
      ExecSQL;
    end;
    with allDataModule.AQ_OtherMaterielStock do
    begin
      Close;
      SQL.Clear;
      SQL.Text:='update otherMaterielStock set amount=amount-:updateAmount where materielID=:updateID';
      Parameters[0].Value:=myAmount;
      Parameters[1].Value:=myMateriel;
      ExecSQL;
    end;
    materielOutForm.Close;
  end;

在这段代码之后
with allDataModule.AQ_OtherMaterielOut do
    begin
      Close;
      SQL.Clear;
      SQL.Text:='update otherMaterielStock set amount=amount-:updateAmount where materielID=:updateID';
      Parameters[0].Value:=myAmount;
      Parameters[1].Value:=myMateriel;
      ExecSQL;
    end;

不能使用allDataModule自动显示可以使用的控件列表功能,但我强加上后面的代码仍然可以使用。怎么回事?

《编程之美-微软技术面试心得》这本书中的1.11节的转化问题研究:nim拈游戏研究

《编程之美-微软技术面试心得》这本书中的1.11节有一个问题: 一堆石块,A和B两个人从里面拿,每次只能拿一个或者任意连续的两个,最后拿到的算赢,先拿者是否有必胜策略: 这个问...

C++ Primer中智能指针的一个小疑惑,是书中的bug?

C++中的管理指针成员方法,有一个是智能指针。 《C++ Primer》原书495,译本424这个位置 意思很简单,利用一个U_Ptr类充当HasPtr的私有计数类,防止多个HasPtr对象调用析...

# 关于数据库编程的几个要点,与Delphi相比较

我以前是用Delphi+SqL写数据库编程的,现在想转C#,发现有相同的地方,也有不同的地方。现在都记下来,怕一下子又忘记了。 1.显示数据 Delhpi里用Dataset+DataSou...

C语言数据结构之单向链表(已经调试可以实现相应的功能了,可是还是有几个问题现在还是不大理解,希望大家能够一起探讨)

#include #include typedef struct NodeStruct {     int num;     struct NodeStruct *next; }Nod...

十二种实践方法与我的XP心得

XP作为一种还算年轻的软件研发的方法论目前应该可以说开始普及了。作为一个软件研发人员,我非常赞同XP理念,XP的理念中充满了使项目成功的关键思想,而这些思想不仅仅是技术上的,而是很大一部分是管理与沟通...

Delphi MDI多文档架构几个问题解决

1.关于登录窗口(Login)的嵌入: 很多

谈谈数据库的字段设计的几个心得

数据库的字段设计有很多细节性的技巧,下面将过去在开发中体会到经验整理出来,做个备忘。 tinyint 是-128到128 。当属性设置为unsigned的时候。最大值就是255了。现在知道为什么...

一起ORACLE数据库中数据查询结果不一致问题的排查过程

一、问题描述 在某软件开发项目中,需要在ORACLE数据库中建立十张类型相同的员工信息表tb_employeeinfo0~tb_employeeinfo9,并建立向这十张表中插入数据的存储过程。OR...
  • zhouzxi
  • zhouzxi
  • 2015年06月05日 15:13
  • 3023

cocoa pods的安装与我遇到的问题

1.打开终端 终端输入  ruby -v  查看ruby的版本 打印代码: ruby 2.0.0p648 (2015-12-16 revision 53162) [universal...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:几个delphi书中没提过的数据库问题与我的疑惑和心得(一起讨论)
举报原因:
原因补充:

(最多只允许输入30个字)