我正在从MSDN复制VBA代码片段,向我展示如何从SQL查询中获取结果到Excel工作表(Excel 2007):
Sub GetDataFromADO()
'Declare variables'
Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset
'Open Connection'
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;User ID=abc;Password=abc;"
objMyConn.Open
'Set and Excecute SQL Command'
Set objMyCmd.ActiveConnection = objMyConn
objMyCmd.CommandText = "select * from myTable"
objMyCmd.CommandType = adCmdText
objMyCmd.Execute
'Open Recordset'
Set objMyRecordset.ActiveConnection = objMyConn
objMyRecordset.Open objMyCmd
'Copy Data to Excel'
ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
End Sub
Run Code Online (Sandbox Code Playgroud)
我已经添加了Microsoft ActiveX Data Objects 2.1 Library作为参考.这个数据库是可访问的.
现在,当我运行这个子程序时,它有一个错误:
运行时错误3704:关闭对象时不允许操作.
在声明中:
ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
谢谢.
我有一个不会设置参数的情况,但我捕获和处理参考的尝试不起作用.
我正在使用以下内容:
<xsl:template match="xs:complexType">
<xsl:param name="prefix" />
<xsl:variable name="prefix-no-core">
<xsl:choose>
<!-- if no value, default to 'AcRec' -->
<xsl:when test="not($prefix)">
<xsl:value-of select="'AcRec'" />
</xsl:when>
<!-- if 'core', leave as empty string -->
<xsl:when test="$prefix = 'core'">
</xsl:when>
<!-- if 'AcRec', set the value -->
<xsl:when test="$prefix = 'AcRec'">
<xsl:value-of select="$prefix" />
</xsl:when>
</xsl:choose>
</xsl:variable>
<xs:complexType name="{concat($prefix-no-core, @name)}">
...
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
我在第一次测试中也尝试过$ prefix ='' - 两种方法都没有效果.但如果我使用:
<xsl:value-of select="not($prefix)" />
Run Code Online (Sandbox Code Playgroud)
...该值打印为true.但在我的xsl:choose中使用它不会产生任何输出.
在调查这个问题时,我很好奇C#4.0中新的协方差/逆变特性将如何影响它.
在Beta 1中,C#似乎不同意CLR.回到C#3.0,如果你有:
public event EventHandler<ClickEventArgs> Click;
Run Code Online (Sandbox Code Playgroud)
......然后你在其他地方:
button.Click += new EventHandler<EventArgs>(button_Click);
Run Code Online (Sandbox Code Playgroud)
...编译器会barf,因为它们是不兼容的委托类型.但是在C#4.0中,它编译得很好,因为在CLR 4.0中,类型参数现在被标记为in,因此它是逆变的,因此编译器假定多播委托+=将起作用.
这是我的测试:
public class ClickEventArgs : EventArgs { }
public class Button
{
public event EventHandler<ClickEventArgs> Click;
public void MouseDown()
{
Click(this, new ClickEventArgs());
}
}
class Program
{
static void Main(string[] args)
{
Button button = new Button();
button.Click += new EventHandler<ClickEventArgs>(button_Click);
button.Click += new EventHandler<EventArgs>(button_Click);
button.MouseDown();
}
static void button_Click(object s, EventArgs e)
{
Console.WriteLine("Button was clicked");
}
} …Run Code Online (Sandbox Code Playgroud) 我有一个SQL Server 2000,其中包含一个包含image列的表.
如何通过指定文件的路径将文件的二进制数据插入该列?
CREATE TABLE Files
(
FileId int,
FileData image
)
Run Code Online (Sandbox Code Playgroud) 我一直在研究Flex组件,我想为它编写一些自动化测试.问题是,我看过的UI测试工具(FlexMonkey和Selenium Flex API)没有模拟"足够":
到目前为止出现的大多数错误都与Flex处理拖放的方式有关,这些库无法准确模拟.例如,我需要测试一个组件下半部分发生"drop"事件的情况 - FlexMonkey和Selenium Flex API都不能这样做(它们可能会模拟鼠标事件,但它们不会包含坐标).
那么,是否有任何"好"的方法来自动化这种测试?
编辑:经过大量研究,看起来唯一可以做到这一点的软件是iMacros,它只是Windows而且接口是...缺乏.所以我要写自己的.基本上,它将放置HTTP接口,java.awt.Robot因此代码(以任何语言)可以模拟鼠标/键盘事件.如果你有兴趣,PM我和我会告诉你更新.
编辑2:我在BitBucket上发布了我写的第一个版本的Blunderbuss:http://bitbucket.org/wolever/blunderbuss/.你需要Jython来运行它(http://www.jython.org/),但之后这个flex-client例子应该可行.
Blunderbuss的视频在Vimeo居住:
目前这仍然是一个概念验证,因为我没有周期来清理它并使它更有用......但也许有足够的人打扰我会给我那个时间:)
我的ASP.NET MVC应用程序位于IIS 6.0 webroot文件夹中名为Stuff的文件夹中.所以我以http:// localhost/Stuff/Posts的形式访问我的页面.当我使用Visual Studio的内置Web服务器时,我有EMLAH工作.现在当我访问http://localhost/Stuff/elmah.axd时,我得到资源未找到错误.谁能在这里指出我的错误!这是配置文件条目,
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/> //Handler
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/> //Module
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的表:
A 1
A 2
B 1
B 2
Run Code Online (Sandbox Code Playgroud)
我想生成一个如下所示的结果集:
A 1 2
B 1 2
Run Code Online (Sandbox Code Playgroud)
是否有SQL语句可以执行此操作?我正在使用Oracle.
相关问题:
我正在尝试创建一个Python脚本:
这似乎并不太难,但我吮吸python :)
关于脚本应该是什么样子的任何想法?
奖金问题:我应该使用
使用os.system
要么
subprocess.call
?
Subprocess.call似乎允许更易读的脚本,因为我可以像这样编写命令:
cmdLine = ['mencoder',sourceVideo,' - ov','copy',' - oac','copy',' - s','00:02:54',' - endpos','00:00: 54',' - o',destinationVideo]
编辑:好的,这有效:
import os, subprocess
bitrate = '100'
mencoder = 'C:\\Program Files\\_utilitaires\\MPlayer-1.0rc2\\mencoder.exe'
inputdir = 'C:\\Documents and Settings\\Administrator\\Desktop\\input'
outputdir = 'C:\\Documents and Settings\\Administrator\\Desktop\\output'
for fichier in os.listdir(inputdir):
print 'fichier :' + fichier
sourceVideo = inputdir + '\\' + fichier
destinationVideo = outputdir + '\\' + fichier[:-4] + ".mp4"
commande = [mencoder,
'-of',
'lavf',
[...] …Run Code Online (Sandbox Code Playgroud) 使用String类,您可以:
string text = new string('x', 5);
//text is "xxxxx"
Run Code Online (Sandbox Code Playgroud)
创建List <T>的最短方法是什么,该List <T> n包含所有相同引用的元素?
例如,我在枚举中有两个元素.我希望第一个由整数值0和字符串A表示,但第二个由整数值2和字符串"B"(而不是1)表示.这可能吗?
目前,我的枚举声明如下:
public enum Constants {
ZERO("Zero");
TWO("Two");
}
Run Code Online (Sandbox Code Playgroud)
如果我得到ZERO和TWO的整数值,我现在分别得到0和1.但是,我想获得0和2.
c# ×2
sql ×2
.net ×1
.net-3.5 ×1
adodb ×1
aggregation ×1
apache-flex ×1
asp.net-mvc ×1
c#-4.0 ×1
clr4.0 ×1
delegates ×1
elmah ×1
enums ×1
events ×1
excel ×1
excel-vba ×1
flash ×1
foreach ×1
java ×1
list ×1
mencoder ×1
oracle ×1
python ×1
sql-server ×1
t-sql ×1
testing ×1
ui-testing ×1
vba ×1
xslt ×1