小编Yan*_*nko的帖子

PDO与MSSQL驱动程序如何获取输出参数?

当您使用PDOMSSQL的驱动程序,你实际使用freetds的低级别的驱动程序.执行存储过程有一些不同的方法 - 语言查询RPC调用.

FreeTDS还支持TDS协议版本4.2和7.x. 它们之间的主要区别之一是存储过程调用的行为.Microsoft将协议4.2中的行为更改为7.0,而不是从语言查询返回输出参数.语言查询主要将文本查询发送到包装到TDS包中的服务器.

使用PDO进行语言查询的示例(来自php.net)

    $stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
    $value = 'Hello!';
    $stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000); 
    $stmt->execute();
    print "The output is $value\n";
Run Code Online (Sandbox Code Playgroud)

实际上你发送的东西就像"EXEC sp_takes ....".如果您使用MSSQL运行上面的示例,您将获得TDS7.х中的空输出参数和4.2的预期结果.为什么我们不能使用4.2并且开心?它有很多局限性:

  • 当然只有ASCII.
  • 不支持RPC和BCP.
  • varchar字段限制为255个字符.如果您的表定义了更长的字段,它们将被截断.
  • prepared statements不支持动态查询(也称为).

所以,4.2不是变种.

RPC调用示例(来自php.net odbtp扩展)

    $stmt = mssql_init('sp_takes_string_returns_string');
    $value = 'Hello!';
    mssql_bind($stmt, 1, $value, SQLVARCHAR, true,  false,   4000);
    mssql_execute($stmt);
    print "The output is $value\n";
Run Code Online (Sandbox Code Playgroud)

使用上面的示例和php中的本机mssql扩展,您可以使用TDS 7.2获得正确的结果.实际上,您使用该代码发送二进制RPC数据包.

是否有任何方法可以使用PDO和MSSQL驱动程序对存储过程进行RPC调用?

php sql-server pdo freetds

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

您如何使用WiX部署VSTO 3.0插件?

我想部署一个我用Visual Studio 2008编写的VSTO 3应用程序级Word 2007插件.我看到WiX有一个名为WixOfficeExtension的扩展,看起来它可能具有此功能,但我找不到任何文档,我无法从源代码中辨别出它的目的.

有没有人试过这个,你能成功地把它拉下来吗?

vsto add-in wix wix3 ms-office

20
推荐指数
2
解决办法
9576
查看次数

将参数从bootstrapper传递到msi bundle包

我正在使用VS2010和WiX 3.6来创建MSI包并将它们捆绑到Bootstrapper设置中.这是我的Boostrapper代码.

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Bundle Name="" Version="" Manufacturer="" UpgradeCode="">
        <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />

        <Chain>
              <MsiPackage SourceFile="Package1.msi">
                <MsiProperty Name="PARAM1" Value="[PARAM1]" />
                <MsiProperty Name="PARAM2" Value="[PARAM2]" />
              </MsiPackage>
              <MsiPackage SourceFile="Package2.msi">
                <MsiProperty Name="PARAM1" Value="[PARAM1]" />
                <MsiProperty Name="PARAM2" Value="[PARAM2]" />
              </MsiPackage>
        </Chain>
    </Bundle>
</Wix>
Run Code Online (Sandbox Code Playgroud)

MSI包必须具有指定的参数才能运行.通常,我会打电话"Packag21.msi PARAM1=1 PARAM2=2".在我构建项目之后,我尝试以相同的方式将参数传递给我的Bootstrapper.exe Bootstrapper.exe PARAM1=1 PARAM2=2,但它似乎没有将它们传递给MSI.安装与缺少的参数条件挂起.

有没有办法将参数从exe传递给msi?

.net installer wix visual-studio wix3.6

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

"aspnet_regiis -ir"和"aspnet_regiis -iru"有什么区别?

aspnet_regiis实用程序的帮助文本为"-ir"选项说明以下内容:

Install this version of ASP.NET, register only. Do not change any web applications to use this version.
Run Code Online (Sandbox Code Playgroud)

以下为"-iru"选项:

Install this version of ASP.NET. If there are any existing applications that uses ASP.NET, it will not change IIS configuration to use this version.
Run Code Online (Sandbox Code Playgroud)

它必须是我的英语,但我不明白它们之间的区别 - 两者都不会改变任何使用此版本的应用程序.而且我担心自己尝试这一点并不准确,因为我几乎不知道在哪里研究......

有谁知道这个区别?

iis aspnet-regiis.exe

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

在编辑器中键入时Visual Studio崩溃

我已经使用VS2010几个星期但是在过去的几天它已经完全无法使用,当我在编辑器中输入任何内容时Visual Studio抛出一个异常,然后我得到了很多intellisence错误(代码很好,我可以编译如果我在尝试使用编辑器之前运行它 - 这是日志消息:

  <entry>
    <record>241</record>
    <time>2011/01/25 08:30:34.109</time>
    <type>Error</type>
    <source>Editor or Editor Extension</source>
    <description>System.InvalidCastException: Unable to cast COM object of type &apos;System.__ComObject&apos; to interface type &apos;Microsoft.VisualStudio.TextManager.Interop.IVsTextReplaceEvents&apos;. This operation failed because the QueryInterface call on the COM component for the interface with IID &apos;{CF9928D9-65AE-4319-A446-94ED5C45ECDE}&apos; failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).&#x000D;&#x000A;   at System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, Boolean&amp; pfNeedsRelease)&#x000D;&#x000A;   at Microsoft.VisualStudio.TextManager.Interop.IVsTextReplaceEvents.OnReplace(ChangeInput[] pCI)&#x000D;&#x000A;   at Microsoft.VisualStudio.Editor.Implementation.VsTextBufferAdapter.OnTextBufferChangedHighPriority(Object sender, TextContentChangedEventArgs e)&#x000D;&#x000A;   at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.RaiseEvent[TArgs](Object sender, EventHandler`1 eventHandlers, TArgs args)</description> …
Run Code Online (Sandbox Code Playgroud)

crash intellisense editor visual-studio-2010

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

从对话框调用CustomAction时,WiX安装错误2762

我是初学者,开始学习WiX.我想在安装过程中捕获并验证和注册用户详细信息.我创建了一个对话框,用于捕获用户注册并在用户单击"下一步"时调用自定义操作.

但在这里我得到安装程序错误2762.虽然错误描述说"必须在InstallInitialize和InstallFinalize之间安排操作",但我无法弄清楚如何解决此问题.

这是我的XML脚本:

<Binary Id="mycustom"
        SourceFile="..\CustomAction1\bin\Debug\CustomAction1.CA.dll" />

<CustomAction Id="myCustomValidate"
              BinaryKey="mycustom"
              DllEntry="ValidateCustomAction"
              Execute="deferred"
              Return="check">
</CustomAction>

<UI>
    <UIRef Id="WixUI_Mondo" />
    <Dialog Id="UserRegistrationDlg"
            Width="370"
            Height="270"
            Title="[ProductName] [Setup]"
            NoMinimize="yes">
        ..
        ..
        ..
        <Control Id="Next"
                 Type="PushButton"
                 X="236"
                 Y="243"
                 Width="56"
                 Height="17"
                 Default="yes"
                 Text="[ButtonText_Next]">
            <Publish Event="ValidateProductID" Value="0">1</Publish>
            <Publish Event="DoAction" Value="myCustomValidate">1</Publish>
            <Publish Event="SpawnDialog" Value="InvalidRegDlg">PIDACCEPTED = "0"</Publish>
            <Publish Event="NewDialog" Value="SetupTypeDlg">ProductID AND PIDACCEPTED = "1"</Publish>
        </Control>
    </Dialog>
</UI>
Run Code Online (Sandbox Code Playgroud)

以下是我使用的自定义操作代码.

[CustomAction]
public static ActionResult ValidateCustomAction(Session session)
{
    return ActionResult.Success;
}
Run Code Online (Sandbox Code Playgroud)

如果在"InstallExecuteSequence"中使用自定义操作正常工作.我无法弄清楚问题,我删除了自定义对话框并使用以下简单调用来调用自定义操作.但我最终得到了同样的错误.

<Publish Dialog="LicenseAgreementDlg"
         Control="Next"
         Event="DoAction"
         Value="myCustomValidate">1</Publish>
Run Code Online (Sandbox Code Playgroud)

我相信我在做一些愚蠢的事情,但无法理解.解决办法是什么?

windows-installer wix wix3.5

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

如何使用部分语言回退正确索引Solr中的Sitecore 7内容?

我有一个使用Solr 4.7作为搜索引擎的Sitecore 7.5站点.它很棒.这是一个多语言网站.我也在使用Alex Shyba编写的Partial Language Fallback模块.我已将其改编为与Sitecore 7.5配合使用,效果很好.我无法弄清楚的最后一部分是如何让Solr搜索与部分语言回退一起使用.我猜我需要做的是以某种方式在索引时我需要索引所有语言的内容并根据需要从后备语言中提取字段值.所以我要说我有以下内容:

  • 该网站有4种语言(英语,西班牙语,法语,德语)
  • 联系我们页面,包含3个字段(标题,副标题,内容)
  • 联系我们页面有英文版本
  • 有一个西班牙语版本的"联系我们"页面,其中所有3个字段都用西班牙语填写
  • 联系我们页面的法语版本仅包含用法语填写的内容字段
  • 联系我们页面没有德语版本

Partial Language Fallback模块完美地处理了这种情况.无论当前的上下文语言是什么语言,我仍然可以看到"联系我们"页面和页面上的所有字段.

但我不确定我应该如何让Solr索引这个内容.我的猜测是,不知何故,我需要告诉Solr索引在所有4种语言中创建联系我们页面的完整索引,如果没有该语言的内容,则使用每个字段的英文内容.我在网上发现了一篇博文,展示了如何为Lucene做这个.但我不确定如何使用Solr做到这一点.有谁知道如何在Solr中处理这个问题?

solr sitecore sitecore7 sitecore7.5

16
推荐指数
0
解决办法
390
查看次数

WiX:将服务安装为LocalService

我试图通过WiX 3.0让我的应用程序成为安装程序.确切的代码是:

<File Id="ServiceComponentMain" Name="$(var.myProgramService.TargetFileName)" Source="$(var.myProgramService.TargetPath)" DiskId="1" Vital="yes"/>

<!-- service will need to be installed under Local Service -->
<ServiceInstall
                        Id="MyProgramServiceInstaller"
                        Type="ownProcess"
                        Vital="yes"
                        Name="MyProgramAddon"
                        DisplayName="[removed]"
                        Description="[removed]"
                        Start="auto"
                        Account="LocalService"
                        ErrorControl="ignore"
                        Interactive="no"/>
<ServiceControl Id="StartDDService" Name="MyProgramServiceInstaller" Start="install" Wait="no" />
<ServiceControl Id="StopDDService" Name="MyProgramServiceInstaller" Stop="both" Wait="yes" Remove="uninstall" />
Run Code Online (Sandbox Code Playgroud)

事情是由于某种原因,LocalService在"安装服务"步骤失败,如果我将其更改为"LocalSystem",则安装程序会在尝试启动服务时超时.

该服务在系统启动时手动启动,并且所有意图和目的都很有效.我听说在LocalService下正在使服务正常工作存在问题,但Google并没有真正帮助,因为每个人的回答都是"让它工作到kthx".

只是希望在安装过程中设置并启动此服务,就是这样.有帮助吗?谢谢!

installation windows-installer wix wix3

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

人力车图表的onClick选项

我想知道是否实际上对数据点上的onclick事件提供了开箱即用的支持,或者我必须修改库以使其工作.我扫描了源代码的某些部分,但没有看到任何允许绑定自定义单击操作的内容.他们网站上的教程也没有显示此选项(http://code.shutterstock.com/rickshaw/).

任何帮助都是值得赞赏的.我目前正在评估flot,人力车和flotr2.到目前为止,它们都没有满足所有要求,我很惊讶除了flot之外,其他库中没有自定义onClick事件的选项.我看到有些人为flotr2添加了一些黑客方法,但它只对条形图非常具体.

javascript events charts onclick rickshaw

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

TFS 2013 Git模式不支持什么TFVC?

最近我意识到TFS 2013中的Git模式项目并不支持所有可用于TFVC的功能.Brian Harry博客文章间接证明了这一点:

...我们正在将Git完全集成到TFS ALM工作流程中 - 工作项跟踪,构建自动化,报告,代码审查等.并非所有这些集成都已完成,但我们将通过2013更新充实它,当我们完成后,我们应该在Team Foundation Version Control和Git Version Control之间实现ALM集成功能的完全平等.

以下是我面对的一些"Git模式不支持"的内容:

  • 门控签入
  • 代码审查

shelvelets的概念似乎与Git无关.考虑到TFVC的"我的工作"区域完全依赖于shelvelets,它显然不适用于Git模式.

TFVC可用的其他区域有哪些,但Git模式尚未实现?是否存在各种变通方法?

git version-control tfs tfs2013

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