[Sharepoint 2007 / BDC] ODBC parameters werken niet

Pagina: 1
Acties:

  • TeasingU
  • Registratie: Juni 2001
  • Laatst online: 15-09-2022

TeasingU

I Live Longer

Topicstarter
Dit topic is opgelost.
Het blijkt dus dat je op de plek van een parameter een vraagteken kunt plaatsen. Zie hieronder:

XML: meta.xml
1
<Property Name="RdbCommandText" Type="System.String">SELECT naam, kd_debiteur FROM relaties INNER JOIN debiteur ON relaties.nr_relatie = debiteur.nr_relatie WHERE (kd_debiteur &gt;= ?) AND (kd_debiteur &lt;= ?) AND (naam LIKE ?)</Property>


Daarbij moet in het metadata bestand de parameters in precies dezelfde volgorde als in de query aangemaakt worden.
-----

Hallo,

Voor mijn afstudeeropdracht ben ik bezig met het ontsluiten van database gegevens via Microsoft Sharepoint 2007. Hierbij is het de bedoeling dat vanuit een oude Ingres database door middel van een ODBC koppeling de gegevens opgehaald worden. Ik maak daarvoor gebruik van de Business Data Catalog component.

Wanneer ik statische sql queries uitvoor dan werkt het allemaal prima. Maar, op het moment dat ik parameters meegeef dan werkt het niet meer. In het serverlog krijg ik dan te zien dat de parameter die ik meegeef in de query niet omgezet wordt naar een waarde. Ingres krijgt dus daadwerkelijk de '@Value' te zien waardoor de query fout loopt.

Ik maak op de volgende manier een connectie met Ingres, en dat werkt:

XML: meta.xml
1
2
3
4
5
6
7
8
9
<LobSystemInstance Name="Administratie">
      <Properties>
        <Property Name="AuthenticationMode" Type="System.String">PassThrough</Property>
        <Property Name="DatabaseAccessProvider" Type= "System.String">Odbc</Property>
        <Property Name="RdbConnection Data Source" Type= "System.String">"Driver={Ingres};DSN=qredo;Uid=;Pwd=;Trusted_Connection=True;"</Property>
        <Property Name="RdbConnection Integrated Security" Type="System.String">SSPI</Property>
        <Property Name="RdbConnection Pooling" Type="System.String">false</Property>
      </Properties>
    </LobSystemInstance>


Voor het opzoeken heb ik de method GetKlanten:

XML: meta.xml
1
2
3
4
5
6
<Method Name="GetKlanten">
          <Properties>
            <Property Name="RdbCommandText" Type="System.String">SELECT naam, kd_debiteur FROM relaties INNER JOIN debiteur ON relaties.nr_relatie = debiteur.nr_relatie WHERE (kd_debiteur &gt;= @MinKd_debiteur) AND (kd_debiteur &lt;= @MaxKd_debiteur) AND (naam LIKE @Bedrijfsnaam)</Property>
            <Property Name="RdbCommandType" Type="System.String">Text</Property>
          </Properties>
...


Wanneer ik voor '@MinKd_debiteur', '@MaxKd_debiteur' en '@Bedrijfsnaam' vaste waarden invoer werkt het dus prima.

Wat heb ik gedaan:
Ik heb een dump van de Ingres database gemaakt en deze in ms-sql2000 geplaatst. Wanneer ik dan
de querie uitvoer gaat het perfect. (Met aanpassing van de Lobsysteminstance uiteraard).

Hoogstwaarschijnlijk zit het in de ODBC connectie en kan die niet op deze manier met de parameters overweg. In de documentatie van Sharepoint 2007 is hier niets over te vinden. Ook
op MSDN: http://msdn2.microsoft.com/en-us/library/ms566019.aspx gaan ze hier niet op in.

Ergens heb ik gelezen dat ODBC en SQL commando's/queries kunnen verschillen maar meer
dan dat ben ik niet te weten gekomen.

Mijn vraag, kan iemand mij verder helpen? Hoe moet ik de query veranderen om toch via ODBC
de parameters te kunnen gebruiken?

Links, tips, alles is welkom.

Helemaal vergeten:

Serverplatform: Microsoft Server 2003 (Standard)
Sharepoint: Microsoft Sharepoint 2007 (Enterprise)
De Ingres database draait op een Unix server.

[ Voor 10% gewijzigd door TeasingU op 07-06-2007 10:02 ]

cd /usr/ports/www/porn make install