标签: ado

从 2 个不同的数据库中选择 2 个表 (ACCESS)

这是我的连接

strCon="DBQ=" & Server.Mappath("db.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};PWD=password;"
set adoCon=server.createobject("adodb.connection")
adoCon.Open strCon
Run Code Online (Sandbox Code Playgroud)

因此,为了使用 2 个数据库,我有 2 个 adoCon,当我进行选择时,我会从我需要的每个数据库中进行选择

现在的问题......在这种情况下,我将只能从一个然后从另一个获取所有信息。但我想要的是能够把它们放在一起。

db1.tblcats 有类别,db2.tblcats 有类别和子类别,所以除了能够同时选择两者之外,我还需要能够知道什么是 db 中的 cat


大帮助后的第2步

这是我的代码

strSQL = "SELECT name FROM tblcats union " _ 
& "select name from [MS Access;PWD=pass;DATABASE=" & Server.Mappath("../shop.mdb") & "].tblcats as bcats where bcats.father=50"
                                rs.CursorType = 3
                                rs.LockType = 3
                                rs.Open strSQL, strCon
while not rs.eof
response.write rs("name")&"<br>"
rs.movenext
wend
Run Code Online (Sandbox Code Playgroud)

我怎么知道什么记录来自什么数据库?因为我需要为每个人采取不同的行动

union ms-access select ado

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

如何使用delphi提高从表中加载树视图节点的速度

使用递归函数从表中加载树视图节点很简单,但对于大数据来说需要很长时间。
我有一个包含以下字段的表:id、title、parentid :将树视图节点保持在 N 级。

该表有超过 70000 行。当我从此表中填充树视图时,需要很长时间(大约 9 分钟)才能完成。

有没有更好的解决方案来提高加载速度?

database delphi treeview performance ado

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

DELPHI 错误:多步操作生成器错误。检查每个状态值

我有一个程序,当单击一个位按钮时,它会打开一个对话框来加载一些文件,并将其添加到 AdoQuery (AQSource1) 中。当我添加一些文件时,出现此错误:

“多步操作生成器错误。检查每个状态值。”

仅当我添加选定的多个文件时。但是,如果我按一个文件选择一个文件,则根本没有错误...但有时,如果我选择多个文件,此错误也不会显示......对我来说有点困惑...

如何解决这个问题?简单来说...

PS:我使用Windows 7 Pro SP1 64位,Embarcadero Delphi 2010

procedure TFMain1.btImgLoad1Click(Sender: TObject);
var i : integer;
    strFilename : string;
begin
  if OpenDialog1.Execute then
  begin
//    Add selected file to DBase and show it on DBGrid
    for i := 0 to openDialog1.Files.Count-1 do
    begin
//      ShowMessage(openDialog1.Files[i]);
      strfilename := openDialog1.Files[i];

      AQSource1.Append;
      AQSource1source_fileurl.Value := strFilename;
      AQSource1source_filename.Value := ExtractFileName(strfilename);
      AQSource1source_dateadd.Value := date();
      AQSource1source_timeadd.Value := Time();
      AQSource1.Post;

      AQSource1.Close;
      AQSource1.Open;
    end;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi ado

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

Server.ScriptTimeout = 0 不工作

我有一个 ASP Classic 脚本,它必须做很多事情(仅限管理员),包括运行一个需要 4 分钟才能执行的存储过程。

然而,即使我有

Server.ScriptTimeout = 0
Run Code Online (Sandbox Code Playgroud)

就在页面顶部,它似乎忽略了它 - 2003 和 2012 服务器。

我已经尝试尽可能多地为 proc 建立索引,但它是为了减少经常搜索的术语,所以我必须清除所有黑客、性垃圾邮件等。

我不明白的是为什么 Server.ScriptTimeout = 0 被忽略了。

实际的错误是这样的

Active Server Pages 错误“ASP 0113”

脚本超时

/admin/restricted/fix.asp

已超出脚本执行的最长时间。您可以通过为属性 Server.ScriptTimeout 指定新值或更改 IIS 管理工具中的值来更改此限制。

它从来没有这样做过,它应该覆盖 IIS 中 30 秒的默认设置。

我已确保 proc 的命令超时为 0,因此无限制,并且在从 proc 返回后出错。

有人有任何想法吗?

sql vbscript timeout ado asp-classic

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

如何向SqlCommand添加参数?

我正在尝试添加参数SqlCommand,但它插入参数名称而不是参数值.

这是代码片段:

var QueryString1 = "Insert into UsersTable (Username, Password, IsAdmin, Email, Budget, Phone) " +
                   "values ('@Un', '@P','" + user.IsAdmin + "', '@E', '@B', '@Ph')";

using (SqlCommand command = new SqlCommand(QueryString1, con))
{
    command.Parameters.Add("@Un", SqlDbType.Text);
    command.Parameters["@Un"].Value = user.UserName;
    command.Parameters.Add("@P", SqlDbType.Text);
    command.Parameters["@P"].Value = user.Password;
    command.Parameters.Add("@E", SqlDbType.Text);
    command.Parameters["@E"].Value = user.Email;
    command.Parameters.Add("@B", SqlDbType.Text);
    command.Parameters["@B"].Value = user.Budget.Amount + "-" + user.Budget.Currency;
    command.Parameters.Add("@Ph", SqlDbType.VarChar);
    command.Parameters["@Ph"].Value = user.Phone;

    if (command.ExecuteNonQuery().Equals(0))
    {
        con.Close();
        return InternalServerError();
    }

    con.Close();

    return Ok();
}
Run Code Online (Sandbox Code Playgroud)

这是SQL Server的结果

抱歉模糊记录:)

c# t-sql sql-server ado

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

将“经典 ASP/ADO”应用程序从 SQL Server 2008 移动到 SQL Server 2017 时使用什么连接字符串和/或 OLEDB/ODBC 驱动程序?

我的“经典 ASP”应用程序在 Windows Server 2003 上,使用 ADO 连接到 SQL Server 2008 数据库。

数据库服务器正在从变更升级,并将运行 SQL Server 2017。

我试图证明旧应用程序仍然可以工作,连接到这个较新版本的 SQL Server。

到目前为止,我还没有成功地从旧的 WS2003 机器连接到 SQL Server 2017 安装。

我不确定需要安装哪些 OLEDB 或 ODBC 提供程序或驱动程序才能使其正常工作,以及最终需要什么连接字符串。

我创建了一个小型演示程序,使用与实际应用程序相同的代码来建立连接。本质上,我在这里所做的只是提供一个连接字符串并尝试连接。这是使用 ADO 的 VB6:

Private Sub btnConnect_Click()

    Dim theConnection As New ADODB.Connection

    theConnection.ConnectionString = Text1.Text 
    theConnection.Open ConnectString

    If theConnection.State = 1 Then
        MsgBox ("connected ")
    Else
        MsgBox ("failed to connect ")
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

我可以让这个程序在新服务器上运行 - 带有 SQL Server 2017 的服务器,并且它成功连接。

此连接字符串有效:

Driver={SQL Server Native Client 11.0};Server=192.168.0.23;Database=TestDB;Uid=user1;Pwd=xxx;
Run Code Online (Sandbox Code Playgroud)

这也有效: …

sql-server ado

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

无法从 SQL 表中查询字符串

我试图从数据库中一组的值传递到TEdit当在一个项目被选中TComboBox。但是,返回的值应该是字符串,而不是整数。在组的文本字段中,返回的值为 0。谁能帮我解决这个问题?

这是文本字段的代码,它应该根据 a 中选择的项目返回组数据TComboBox

ADOQuery1.SQL.Clear;
rf := ADOQuery1.SQL.Add('SELECT grouppp FROM f3_sheet WHERE holder =  "' +cb1.Text +'"');
gpp.Text := rf;
Run Code Online (Sandbox Code Playgroud)

delphi ado tadoquery

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

ado和bde之间的差异

ado和bde之间的区别是什么?

delphi ado bde

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

SQL查询耗时太长

我正在使用ADO将数据保存到MS Access数据库.将数据保存到文件需要相当长的时间(大约7秒 - 这对于我们的目的来说太长了).我查看了正在运行的SQL查询的数量,它大约是4200; 虽然没有一大堆数据.

数据库连接似乎是瓶颈.你知道如何减少这个时间吗?要么通过某种方式将多个语句组合成一个以减少开销,或者某些ADO/MS-Access技巧?

例如,您可以一次在表中插入多行,这会明显加快吗?

额外信息:

我们有这么多查询的一个原因是我们插入一行,然后有另一个查询来检索它的自动增量ID; 然后使用此ID插入更多行,将它们链接到第一行

回应几条评论和回复:我将整个时间保持连接状态,并将其作为单个事务执行,使用BeginTransaction()和CommitTransaciton()

sql optimization ms-access ado

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

帮助Delphi 7,ADO和MS Access SQL语句 - 部分Deuce

我需要帮助理解为什么我的SQL不起作用.或者,如果我需要以不同的方式编写它以获得我需要的结果.正如标题所示,我使用的是Delphi 7,ADO组件和MS Access 2000数据库.您可以在此处查看第I部分中的表结构:
帮助Delphi 7,ADO和MS Access SQL语句

我目前用来获取基于关键字的所有知识的SQL如下:

select*from(知识K
内连接knowledge_keywords KKW on KKW.knowledgeid = K.id)
内连接关键字KW on KW.id = KKW.keywordid
where(KW.keyword ='job')AND(KW.keyword ='task' )

然而,当知识id中具有相同知识id的那两个单词中显然存在这两个单词时,这不会返回并产生结果.

但是,如果我使用OR而不是AND执行相同的SQL,我会得到我预期的两条记录

select*from(知识K
内连接knowledge_keywords KKW on KKW.knowledgeid = K.id)
内连接关键字KW on KW.id = KKW.keywordid
where(KW.keyword ='job')AND(KW.keyword ='task' )

谢谢你的帮助

sql delphi ms-access ado delphi-7

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