标签: ado

从ADO.NET或经典ADO长期运行存储过程

假设存储过程需要10分钟才能运行并且不返回任何数据.

在SQL Server中调用存储过程并让代码不等待结果的正确方法是什么?有没有办法从T-SQL或连接中处理它?在ADO.NET和经典ActiveX ADO中有效的东西?

我想到的唯一方法是:
1)在T-SQL中创建一个作业
2)将基于T-SQL的代码加载到作业的第一步中
3)确保代码的最后一行删除作业
4)执行作业(我很确定这不会让你因为回应而停下来)我知道这是非常糟糕和苛刻的......但是

还有其他一些我没想到的T-SQL,你可以用一个存储过程来说"我知道没有回应......所以我选择不等待."?

.net t-sql sql-server ado.net ado

1
推荐指数
1
解决办法
1681
查看次数

用Jet/ADO立即关闭连接真的很明智吗?

我对这个话题进行了广泛的研究,并与我的同事进行了深入的讨论.

普遍的共识似乎是,数据库连接应该在需要时打开并立即关闭.连接的任何缓存/池应该由数据库驱动程序或其他层完成,而不是由应用程序本身完成.

但是我对Jet/ADO有疑虑.Jet和/或ADO使用读取缓存和延迟写入,这可能导致"不同步"连接.当然,我每次使用JRO时都可以重新同步连接,但这似乎很麻烦,可能性能耗尽.

我应该采用关闭每个连接并重新同步每个新连接的"最佳实践",还是应该使用全局连接对象,因为Jet/ADO怪癖?

vb6 connection ms-access ado jet

1
推荐指数
1
解决办法
2717
查看次数

连接字符串

任何人都可以在Vista页面上使用sql server 2005在asp页面中显示示例连接字符串吗?

或者这个问题的任何解决方案:

Dim cnn As ADODB.Connection 
Run Code Online (Sandbox Code Playgroud)

抛出错误http 500.

我想ado没有正确安装?

有任何想法吗?

sql-server vbscript sql-server-2005 ado asp-classic

1
推荐指数
1
解决办法
431
查看次数

Delphi:Jet 4.0女士仍然是开发桌面数据库应用程序的不错选择吗?

如果我坚持使用Ms Jet 4.0(Ms Access 2000-2002)来开发我的桌面数据库程序,你认为我的应用程序会很快变得过时吗?那是使用旧的数据库引擎,在Windows 7等最新的Windows操作系统中无法使用?

或Jet 4.0女士仍然是一个安全的赌注?

我正在使用D5和ADO.

请分享您的想法和意见:)

谢谢!

delphi ms-access ado jet

1
推荐指数
2
解决办法
887
查看次数

如何将(Jpeg)图像保存到MySql并在以后检索它?

寻找代码示例,最好使用TADOConnection.

我想将TImage的TPicture保存到MySql(最好是ODBC,而不仅仅是MySql)数据库,之后我想创建一个TImage并将图片检索到其TPicture属性.

任何代码片段,或链接到同一个?

mysql delphi ado

1
推荐指数
1
解决办法
2万
查看次数

如果服务器不存在,如何更快地使ADO连接超时?

我的任务是支持旧的VB6应用程序.(对我来说)我遇到ADO连接超时属性问题.如果服务器存在,下面的方法可以正常工作,但如果服务器不存在或网络连接没有启动,即使intTimeout设置为1,也需要整整30秒才能超时.

有没有办法让ADO更快地无法连接?这甚至可能吗?谢谢!

Public Sub GetConnectionObject(ByRef oCn As ADODB.Connection, strServer As String,     strInitialCatalog As String, Optional intTimeout = 10)

    Dim strConnectionString As String
    strConnectionString = "Data Source=[SERVER];Provider=SQLOLEDB.1;User ID=ScanReq1;Password=ScanR3Q;Initial Catalog=[INITIALCATALOG];ConnectionTimeout=" & intTimeout & ";"
    strConnectionString = Replace(strConnectionString, "[SERVER]", strServer)
    strConnectionString = Replace(strConnectionString, "[INITIALCATALOG]", strInitialCatalog)

    Set oCn = New ADODB.Connection
    oCn.CursorLocation = adUseClient
    oCn.ConnectionString = strConnectionString
    oCn.CommandTimeout = intTimeout
    oCn.ConnectionTimeout = intTimeout

    oCn.Open

End Sub
Run Code Online (Sandbox Code Playgroud)

sql vb6 timeout database-connection ado

1
推荐指数
1
解决办法
2701
查看次数

当命令类型是adCmdText时,是否可以使用命名参数?

我正在尝试通过Adodb.Command使用以下查询命名参数,但没有运气.

Select * From mytable Where col1 = Lower(@param1) And col2 = Upper(@param2) And col3 = @param1
Run Code Online (Sandbox Code Playgroud)

代码我使用了类似的东西.

Dim cmd
Set cmd = Server.CreateObject("Adodb.Command")
cmd.NamedParameters = True
cmd.CommandType = adCmdText
cmd.CommandText = "Select * From mytable Where col1 = Lower(@param1) And col2 = Upper(@param2) And col3 = @param1"
cmd.Parameters.Append cmd.CreateParameter("@param1", adVarchar, adParamInput, 20, "some text 1")
cmd.Parameters.Append cmd.CreateParameter("@param2", adVarchar, adParamInput, 20, "some text 2")
Set cmd.ActiveConnection = cn
Dim rs
Set rs = cmd.Execute
Run Code Online (Sandbox Code Playgroud)

问题是,这会导致RDBMS端出错.

Microsoft OLE DB Provider for …
Run Code Online (Sandbox Code Playgroud)

sql-server vbscript ado named-parameters asp-classic

1
推荐指数
1
解决办法
5763
查看次数

ADO - 我可以使用多个连接语句编辑复杂查询的结果吗?

我正在研究一种数据转换实用程序,它可以将数据从一个主数据库推送到许多不同的数据库.该实用程序本身不知道数据如何保存在目标(表结构)中,但我想提供编写SQL语句以使用具有多个连接语句的复杂SQL查询从目标返回数据.只要数据采用标准化格式,实用程序就可以识别ADO查询中的(字段名称).

我想要做的是修改此ADO查询中的实时数据.但是,由于有多个连接语句,我不确定是否可以这样做.我至少知道BDE(我从未使用过BDE),它非常严格,你必须返回所有字段(*)等.我知道ADO更灵活,但我不知道在这种情况下有多灵活.

TADOQuery当结果包含来自不同表的字段时,是否可以以这种方式修改数据?即使如此,假设我想在末尾添加一条新记录(TADOQuery.Append).它会附加到两个不同的表吗?

我正在选择的实际主表具有一个互补表,该表由相同的主键字段连接,一个是"小"表(简要信息),另一个是"详细信息"表(更多信息用于每个记录)小桌子).所以,一个典型的陈述将包括这样的事情:

select ts.record_uid, ts.SomeField, td.SomeOtherField from table_small ts
join table_detail td on td.record_uid = ts.record_uid
Run Code Online (Sandbox Code Playgroud)

其他表中还有许多其他记录连接,但我并不担心会附加到那些表中.我只是担心附加到"小"和"细节"表 - 同时.

在ADO查询中是否可以这样做?我愿意以任何必要的方式调整和修改SQL语句,以实现这一点.我有一种不好的感觉,虽然这是不可能的.

兼容性:

  1. SQL Server 2000到2008 R2
  2. 德尔福XE2

sql-server delphi ado tadoquery delphi-xe2

1
推荐指数
1
解决办法
1024
查看次数

在Delphi 7中运行更新/插入查询时如何解决默认值错误?

我使用Microsoft Jet引擎和Microsoft Access(*.mdb)数据库的应用程序在Delphi 7中出现错误.我通过TADOQuery组件建立连接.错误显示"参数iPointsNew没有默认值",只有在更新/插入查询中使用整数变量时才会发生:

frmHome.adoqryInLoop.SQL.Text := 'UPDATE Users SET Points = iPointsNew WHERE UID = "'+sUID+'"';
Run Code Online (Sandbox Code Playgroud)

事件处理程序的代码如下:

    procedure TfrmAdmin.bmbSubmitClick(Sender: TObject);
var
  sScore, sEID, sPrediction, sUID : String;
  iRecordCount, x, iPos, iLength, iActual, iPoints, iPointsNew : Integer;
  rPrediction : Real;
begin
  // Assign values to variables
  sScore := IntToStr(sedSuthies.Value) + '-' + IntToStr(sedOpponent.Value);
  iActual := sedSuthies.Value + sedOpponent.Value;
  sEID := frmHome.arrEID[lstEvents.ItemIndex];
  // Update the score for the event in the database
  frmHome.adoqryMain.Active := False;
  frmHome.adoqryMain.SQL.Clear;
  frmHome.adoqryMain.SQL.Text := 'UPDATE Events SET Score …
Run Code Online (Sandbox Code Playgroud)

sql delphi ms-access ado delphi-7

1
推荐指数
1
解决办法
849
查看次数

与Delphi有奇怪的ADO数据库问题

对于我一直在学习的学校项目,我真的很感激.你们认为可能是错的?
我和一位朋友说过,我必须确保在任何给定时间我只有1个表的活动属性设置为true.我试过这个,但它似乎没有什么区别.也许我做得不好?

这是我的程序代码:

procedure TForm1.btnChangePassUserClick(Sender: TObject);
var
  sNewPass,sOldPass:string;
begin
  sOldPass:= InputBox('Password verification','Please enter your current password','');

  if sOldPass = sPassword then
  begin
      sNewPass := inputBox('Password change','Please enter a new Password with at least 1 number and letter','');
      if isPasswordValid(sNewPass) then
        begin
           tblUsers.Active := True;
            tblUsers.Edit;
            tblUsers.Filtered := True;

            tblUsers.Filter := 'UserID = ' +QuotedStr(sPassword);
            tblUsers.First;
            tblUsers['Password'] := sNewPass;

            tblUsers.Post;
            tblUsers.Filtered := False;
            tblUsers.Filter := '';


          if bRememberMe then
            begin
              ShowMessage('Password changed, please log in again for security purposes');
              imgLogoutClick(Sender);
            end; …
Run Code Online (Sandbox Code Playgroud)

delphi ado delphi-7

1
推荐指数
1
解决办法
126
查看次数