4

想知道这里是否有人可以提供帮助。我被要求开发一个 ASP.Net 应用程序,它将直接连接(存储和检索)到 ACT!数据库已经正常工作。我是 ACT 新手,正在寻找将其与 ASP.Net 应用程序集成的起点。特别是我正在寻找以下问题的答案: 1. ACT 使用什么数据库技术?是 SQL Server 吗?在这种情况下,我应该能够像任何 SQL Server 数据库一样进行连接吗?2. ACT 是否有任何用于 .Net 的类库或 API 可以帮助实现这一目标?3.任何有助于实现这一点的代码示例或文章都会有很大帮助。期待回复。非常感谢,阿里

4

2 回答 2

2

我意识到这个问题已经很老了,但我发布这个问题是为了让任何被迫处理 ACT 框架的可怜人受益。

1: ACT使用什么数据库技术?
SQL Server(Express 或 Standard,取决于版本和用户数)。

是 SQL Server 吗?在这种情况下,我应该能够像任何 SQL Server 数据库一样进行连接吗?

不必要。ACTReader 实用程序(与 ACT 一起提供!)将让您创建一个只读 SQL 用户帐户来直接访问您的 ACT!SQL 服务器数据库。您也许可以强行进入,但这可能会使您在出现问题时从 Sage 获得的任何支持无效。鉴于数据库列名和接口字段名之间存在大量连接和奇怪的差异,即使您确实具有 sa 访问权限,这也可能不是一个好主意。

2:ACT 的 .Net 是否有任何类库或 API 可以帮助实现这一目标?

可能有预先编写的包装类来简化 ACT api。考虑到 ACT,我怀疑他们是免费的!帮助留言板似乎主要是为了 ACT 的利益而存在的!寻找新客户的“顾问”...此外,您可以从 ACT! 下载“SDK”,但由于示例不是很清楚,而且您需要使用 .NET ACT 的所有 dll 文件,它大多无用!安装 ACT 时会安装 api!

3:任何有助于实现这一点的代码示例或文章都会有很大帮助

我不得不从几十个董事会帖子的零碎中学习,但我终于设法编写了一个C# 导入实用程序来从我的 PHP/MySQL 网络服务器中获取网站联系人(抱歉还没有做任何 ASP.NET 的东西)。这是一个精简的示例,显示了将联系人插入 ACT 所需的基础知识!:

免责声明:这是针对 ACT 2012 的,不知道以前或将来的版本是否会以相同的方式工作

第一:行动!2010 和 2012 使用 .NET 3.5,因此请确保将您的项目设置为这样。此外,您可能必须在 Visual Studio 项目中指定 x86 目标 CPU。没有正确的设置会抛出一个 VersionMismatchError

您需要包含 ACT .dll 的引用,它们位于 Global Assembly Cache 文件夹中(假设您在该计算机上安装了 ACT)。

对于仅导入地址,您需要以下 GAC .dll:

Act.Framework
Act.Shared.Collections

示例程序:

using System;
//etc...

using Act.Framework;
using Act.Framework.Contacts;

namespace ImportToACT
{
    class Program
    {
        static void Main(string[] args)
        {        
            ActFramework ACTFM = new ActFramework();
            ACTFM.LogOn(("\\\\Path\\To\\Your\\padfile.pad"), "Username","Password");

            Contact newContact = ACTFM.Contacts.CreateContact();

            newContact.Company = "Springfield Nuclear Power Plant";
            newContact.FullName = "Homer J Simpson";
            newContact.ContactFields["Contact.Address 1", false] = "742 Evergreen Terrace";
            newContact.ContactFields["Contact.City", false] = "Springfield";
            newContact.ContactFields["Contact.State", false] = "OR";
            newContact.ContactFields["Contact.Country", false] = "United States";
            newContact.ContactFields["Contact.Zip", false] = "90701";
            newContact.ContactFields["Contact.Phone", false] = "(939) 555-0113";
            newContact.ContactFields["Contact.E-mail", false] = "chunkylover53@aol.com";

            newContact.Update();
            ACTFM.LogOff();

            return;
        }        
    }
}

据我所知,ContactFields bool 2nd isReal 值确定您是引用真实数据库列(true)还是 act 接口中的字段名称(false),这并不总是对应于保存字段数据的列名称。我在使用真正的数据库列名时遇到了问题,所以我只是去了字段名路线。

此外,您还会注意到 Contact 对象还有一些其他属性,例如 FirstName 和 LastName,但这些属性是只读的。出于某种原因行动!希望您输入 FullName 并让它解析名字、中间名和姓氏。

祝你好运!!

于 2012-10-11T22:42:07.510 回答
0

这看起来是一个相当不错的起点:

http://www.act.com/support/resourcecenter/index.cfm

快速搜索显示您应该能够使用 oledb 和/或 ODBC 连接到 ACT。看起来它使用了 Pervasive 数据库引擎,所以在 Google 中可能有一些与此相关的东西。

西蒙

于 2011-02-24T13:47:15.867 回答