小编CJM*_*CJM的帖子

如何检查数据库查询是否会返回结果?

我们的网站使用Perl为人力资源人员提供了一个简单的机制,可以将空缺发布到我们的网站.它是由第三方开发的,但是它们很久以来就被触碰了,遗憾的是我们内部没有任何Perl技能.当营销人员规避他们的内部IT团队时,就会发生这种情况!

我需要对此应用程序进行简单的更改.目前,职位空缺页面上写着"我们目前有以下职位空缺:",无论是否有职位空缺!因此我们想要更改它,以便仅在适当的时间显示此行.

显然,我可以开始学习一点Perl,但我们已经在计划一个替换站点,它肯定不会使用Perl.因此,对于具有这些技能的人来说,解决方案将是微不足道的,我想我会要求一些有针对性的帮助.

以下是列出职位空缺的程序的开始.

sub list {
  require HTTP::Date;
  import HTTP::Date;

  my $date = [split /\s+/, HTTP::Date::time2iso(time())]->[0];

  my $dbh = DBI->connect($dsn, $user, $password)
    || die "cannot connect to $database: $!\n";

  my $sql = <<EOSQL;
SELECT * FROM $table where expiry >= '$date' order by expiry
EOSQL

  my $sth = $dbh->prepare($sql);
  $sth->execute();


  while (my $ref = $sth->fetchrow_hashref()) {
    my $temp  = $template;
    $temp     =~ s#__TITLE__#$ref->{'title'}#;

    my $job_spec = $ref->{'job_spec'};

...etc...
Run Code Online (Sandbox Code Playgroud)

关键是while (my $ref = $sth->fetchrow_hashref()) {.我想这是在说"我可以从退回的记录集中取出另一个空位......".如果我在此行之前放置我的print语句,它将始终显示; 在这条线之后,每个空缺都会重复.

如何确定是否有一些空缺要显示,而不会过早地移动返回的记录集?

我总是可以在while循环中复制代码,并将它放在if()语句中(在while循环之前),它也包含我的print语句.但我更愿意采用更简单的方法 …

perl rows dbi

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

将Access 2007连接到SQL Server 2008数据库

我已经看到了类似问题的许多答案.我没有在网上看到很多人问过看似简单的问题"如何将Access 2007连接到SQL Server 2008数据库" - 但所有答案都描述了如何从Access 2007迁移到sql server 2008数据库,或者他们描述了如何将Access 2007连接到sql server 2005数据库.我找不到任何简单的解决方案来解决我的问题(可能这对许多其他人来说都是一个问题).这是一个问题(抱歉过分强调):

如何从Access 2007连接到sql server 2008数据库(我的意思是2008年,而不是2005年:))?再次为过度强调道歉,但这个非常简单的问题,以及我认为应该是一个非常简单的任务似乎,是的,......不可能!我试过运行sql server浏览器,启用管道,TCP等,但似乎用2008 SQLEXPRESS只是不被识别!请有人帮忙解决这个问题.彼得

sql-server ms-access ms-access-2007 access-data-project

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

用于在CGI应用程序中维护会话状态的最佳C/C++库?

我听说Boost和ACE是两个众所周知的C++库.有哪些其他优秀的C/C++库可用?

Boost和ACE是否支持使用C/C++编写的Web应用程序的会话管理?

编辑:好的我会尝试特定领域.我正在寻找一个C/C++库,它可以帮助我维护基于C++的CGI Web应用程序的会话状态.

c c++

5
推荐指数
2
解决办法
6511
查看次数

使用FindControl:访问窗体视图中的控件

我正在开发一个简单的婚礼清单应用程序,客人可以预订他们想要为新娘和新郎购买的礼物.Reserve页面在几个面板中包含几个字段,所有字段都包含在FormView中.

用户输入他们的姓名,电子邮件和他们想要保留的项目数量,页面将在数据库中进行必要的预订.

我的第一个问题是在FormView_ItemCommand中,我无法引用FormView中的任何其他控件....我认为这是FindControl的一个案例 - 但是当我从来不需要它时,为什么我需要一个Formview对于ListViews或DetailViews?

其次,我知道以下代码有效..

Dim oCtrl as TextBox = Me.fvwReservation.FindControl("txtEmail")
Dim Test As String = oCtrl.Text
Run Code Online (Sandbox Code Playgroud)

......但为什么我不能用......

Dim Test As String = Me.fvwReservation.FindControl("txtEmail").Text
Run Code Online (Sandbox Code Playgroud)

??

最后,我认为在这种情况下我不需要它,但我一直在研究递归的FindControl变体,但我实际上并没有找到实际编译的变体!有什么建议?

一篇文章很多 - 提前谢谢.

免费代码片段:

<asp:FormView ID="fvwReservation" runat="Server" DataSourceID="dsGift">
     <ItemTemplate>
      <asp:Panel runat="server" ID="pnlDetails">
       <h3>Reserve Item: <%#Eval("ShortDesc")%></h3>
       <p>You have chosen to reserve the <em><%#Eval("LongDesc")%></em> gift.</p>
       <p>Please enter your details below to confirm the reservation.</p>
      </asp:Panel>
      <asp:Panel runat="server" ID="pnlConfirm">
       <div class="row">
        <asp:Label runat="server" CssClass="label">Name:</asp:Label><asp:TextBox ID="txtName" MaxLength="50" runat="server" CssClass="Field" />
        <asp:RequiredFieldValidator ID="rfvName" runat="server" ErrorMessage="You must specify your …
Run Code Online (Sandbox Code Playgroud)

asp.net formview findcontrol

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

在设计糟糕的架构中进行复杂查询的替代方法

我正在努力将来自第三方系统的一些数据集成到我的一个应用程序(传统的基于ASP Classic的Web应用程序/ SQL 2000)中 - 当涉及到他们的方法和数据结构时,他们做出了一些糟糕的决定(恕我直言)虽然也许我们可能在某个时候有机会重构......但在那之前,我必须与我面前的事情一起工作.

主表保存检查数据,其中一个字段用于记录是否观察到某些特征.这些特性存储在一个名为的表中Categories,但不幸的是,主检查表(Test)通过将相关的CategoryIDs 连接到一个字段(SelectedCategories)来链接到类别.因此,例如,如果观察到特征01和02,则SelectedCategories该行的列Test将具有值"01C02C".

修剪DDL:

CREATE TABLE [dbo].[Test](
[ItemID] [varchar](255) NOT NULL,
[Result] [varchar](255) NULL,
[Comments] [varchar](255) NULL,
[ResultReason] [varchar](255) NULL,
[ImageLocation] [varchar](255) NULL,
[TestDateTime] [smalldatetime] NOT NULL,
[SelectedCategories] [varchar](255) NULL)
Run Code Online (Sandbox Code Playgroud)

问题是,鉴于这种情况,我如何才能最好地从Test观察到的特征细分中提取数据?

我想要的客户端上的输出是一个包含以下列的表:Test.PK,Test.Field2 ... Test.Fieldn,Categories.ID1,Categories.ID2,Categories.IDn

这可能不够清楚 - 第一个字段将是通常的嫌疑人Test,然后是每个类别的刻度线或交叉(或其他视觉指示符)Categories.

显然,如果这可以在一个查询中实现,那么在效率和性能方面就更好了.但是,我不确定如何实现这一目标 - 你将如何Categories通过该表加入SelectedCategories

我显然可以简单地报告该SelectedCategories值并让应用程序解析该值.这可能是硬编码的,或者更有可能我们会重新查询CategoriesTest中的每一行 - 尽管这会产生性能影响.TBH,在这种情况下表现可能不是问题,但仅仅因为你可以逃避某些事情,并不意味着你应该养成它的习惯.

同样,如果我有机会重构第三方应用程序,我会删除SelectedCategories列并添加到TestCategories表中吗?或者我会将每个类别硬编码为一系列Bit列.很可能,在Categories …

t-sql sql-server optimization

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

ASP.NET Ajax控件套件与JQuery

在过去的两年中,JQuery变得越来越流行.所以你认为现在是时候用Ajax在ASP.NET项目中选择JQuery到ASP.NET Ajax了吗?ASP.NET Ajax控件套件是否是ASP.NET世界的未来?

asp.net ajax jquery

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

Exchange Web服务:更复杂的SearchFilters

在之前使用EWS的项目中,我的搜索条件要简单得多:在主题中查找带有"xxx"的电子邮件.

我现在正在将此代码构建为更多用途的应用程序; 我将监视各种邮箱的各种标准,例如:

Find all mail items where the recipient is "email@example.com", AND subject contains "xxx" AND (body contains "yyy" OR body contains "zzz")

但是,使用SearchFilterCollection,虽然我可以添加多个SearchFilters,但我没有看到如何应用不同的逻辑运算符......每个SearchFilterCollection似乎都有一个逻辑运算符:

SearchFilterCollection sfc = new SearchFilterCollection(LogicalOperator.Or, new SearchFilter.ContainsSubstring(ItemSchema.Subject, "Test"));

我想一个解决方案是找到所需邮件的超集,然后在处理它们之后更准确地过滤它们.但我想知道在开始时是否有更好的过滤方式,使用SearchFilters或任何其他方法?

c# exchangewebservices

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

如何使用应用程序安装路径创建Visual Studio安装项目注册表值?

我有一个非常简单的应用程序安装程序,需要在所有文件的shell菜单中添加一个操作(HKCR*\shell),我遇到了一个问题:如何将应用程序的已安装路径插入注册表值?我已经尝试了我能想到的一切:

  • [Path]
  • [ApplicationFolder]
  • [ApplicationPath]
  • [InstallPath]
  • [InstallRoot]
  • [InstallFolder]
  • [InstallTarget]
  • [TargetPath]

我甚至尝试添加一个我知道在其他地方工作的([Manufacturer]),以确保括号值语法实际上在注册表中工作(它确实).

任何人都知道,或者至少有任何我没有尝试过的想法?

registry installer setup-project visual-studio

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

为什么我必须为SQL查询转换返回参数值?

我有一个方法,可以在DB(SQL Server)中添加或更新记录,并将RecordID作为(Int32)输出参数返回,成功/失败结果返回为(Int32)返回值.

鉴于我正在指定这些参数的类型,为什么我必须在返回它们时将它们强制转换?

我希望使用以下内容:

enquiryID = cmd.Parameters["@EnquiryID"].Value;
Run Code Online (Sandbox Code Playgroud)

...但我不得不跳过几个额外的篮球:

enquiryID = Int32.Parse(cmd.Parameters["@EnquiryID"].Value.ToString());
Run Code Online (Sandbox Code Playgroud)

这不是世界末日,但它似乎只是一个漫长的解决方案.为什么Parameters.Value返回SqlParameters.Value对象而不是Int32?

更新:

好吧,我确信 - 直接铸造FTW: (int)cmd.Parameters["@EnquiryID"].Value

c# sql-server parameters casting return-value

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

Exchange Web服务:使用FindItemsResult <Item>进行批处理

我正在编写一个应用程序来处理电子邮件附件,使用Exchange Web服务.

我的问题区域的一般结构如下:

public static void Main()
{
    FindItemsResults<Item> findResults = FindItems();

    foreach (Item item in findResults)
    {
        DoSomethingWithItem(item);
    }
}

public static FindItemsResults<Item> FindItems()
{
            FindItemsResults<Item> findResults;

            ItemView view = new ItemView(10);    //batching 10 at a time
            view.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
            view.PropertySet = new PropertySet(
                BasePropertySet.IdOnly,
                ItemSchema.Subject,
                ItemSchema.DateTimeReceived);

            findResults = service.FindItems(
                WellKnownFolderName.Inbox,
                new SearchFilter.SearchFilterCollection(
                    LogicalOperator.Or,
                    new SearchFilter.ContainsSubstring(ItemSchema.Subject, Properties.Settings.Default.EmailSubject)),
                view);

            //return set of emails
            return findResults;
}
Run Code Online (Sandbox Code Playgroud)

起初,这看起来很好 - 它完美地处理了我早期的测试示例.但是当我开始使用批量加载进行测试时,我意识到它只处理前10个项目,因为我指定的批量大小为10个项目(ItemView view = new ItemView(10)),但我没有检查进一步的批次.

我可以简单地增加批量大小,但稍后快速谷歌,我发现了一个更好的例子:

public static FindItemsResults<Item> FindItems()
{ …
Run Code Online (Sandbox Code Playgroud)

c# exchangewebservices ews-managed-api

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