Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Antwort
 
Themen-Optionen
Alt 29.08.2005, 09:33   Nach oben    #1
Neuer Benutzer
 
Registriert seit: 29.08.2005
Beiträge: 4
Standard odbc_primarykeys

Hallo Leute,

kann mir jemand vielleicht eine kleine Hilfe geben, wie ich die Funktion odbc_primarykeys richtig zu verwenden habe?

PHP-Code:
<?php
resource odbc_primarykeys 
resource connection_idstring qualifierstring ownerstring table)
?>
Ich weiß nämlich nicht, was für 'qualifier' und für 'owner' eingesetzt werden soll.
Für 'owner' hab ich bei allen Beispielen irgendwie 'dbo' gefunden. Was heisst das?
HoriZZon ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.08.2005, 10:58   Nach oben    #2
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard odbc_primarykeys

odbc_primarykeys bildet SQLPrimaryKeys ab.
Wie das funktjioniert, kannst Du unter http://msdn.microsoft.com/library/de...oreignkeys.asp nachlesen.
VolkerK ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.08.2005, 13:43   Nach oben    #3
Neuer Benutzer
 
Registriert seit: 29.08.2005
Beiträge: 4
Standard odbc_primarykeys

[size=9px]Habe einige Teile des Postings gelöscht, da sie nichts mit dem Thema zu tun hatten. Es ging um einen post eines nicht angemeldeten.
Jann Hendrik
[/size]

Danke Wie es scheint, ist sie wirklich hilfreich...arbeite mich gerade durch

//EDIT: nun ja... also leider hilft mir die angegebene Seite doch nicht wirklich weiter, weil ich keinen Zusammenhang zwischen der SQLPrimaryKeys und der entsprechenenden ODBC-Funktion erkennen kann.
HoriZZon ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.08.2005, 16:22   Nach oben    #4
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard odbc_primarykeys

[size=9px]Habe einige Teile des Postings gelöscht, da sie nichts mit dem Thema zu tun hatten. Es ging um einen post eines nicht angemeldeten.
Jann Hendrik
[/size]

Hoppla, falscher link ...SQLPrimaryKeys war gemeint. Bei SQLForeignKeys bin ich nur in die msdn-Doku eingestiegen *pfiffel*

http://msdn.microsoft.com/library/en...asp?frame=true
Und dabei das
Code:
The following columns have been renamed for ODBC 3.x. The column name changes do not affect backward compatibility because applications bind by column number.
ODBC 2.0 column      ODBC 3.x column
TABLE_QUALIFIER      TABLE_CAT
TABLE_OWNER          TABLE_SCHEM
beachten.


Ich kenne die Funktion auch nicht, aber versichere Dir trotzdem, dass es sich um eine fast 1:1 Abbildung handelt.

Zitat:
SQLRETURN SQLPrimaryKeys(
¨¨¨¨¨SQLHSTMT StatementHandle,
¨¨¨¨¨SQLCHAR * CatalogName,
¨¨¨¨¨SQLSMALLINT NameLength1,
¨¨¨¨¨SQLCHAR * SchemaName,
¨¨¨¨¨SQLSMALLINT NameLength2,
¨¨¨¨¨SQLCHAR * TableName,
¨¨¨¨¨SQLSMALLINT NameLength3
);
Und so sieht die php-Funktion im Quellcode aus (ext/odbc/php_odbc.c)
Zitat:
PHP_FUNCTION(odbc_primarykeys)
{
¨¨¨¨¨[...]
// das entspricht ungefähr odbc_primarykeys(pv_conn, pv_cat, pv_schema, pv_table) in php
¨¨¨¨¨if (zend_get_parameters_ex(4, &pv_conn, &pv_cat, &pv_schema, &pv_table) == FAILURE) {
¨¨¨¨¨¨¨¨¨¨WRONG_PARAM_COUNT;
¨¨¨¨¨}
¨¨¨¨¨[...]
// Umwandlungen: das Prefix pv_ fliegt raus. Also pv_conn wird conn, pv_cat wird cat usw.
// und dann direkt der Aufruf
¨¨¨¨¨rc = SQLPrimaryKeys(result->stmt,
¨¨¨¨¨¨¨¨¨¨cat, SAFE_SQL_NTS(cat),
¨¨¨¨¨¨¨¨¨¨schema, SAFE_SQL_NTS(schema),
¨¨¨¨¨¨¨¨¨¨table, SAFE_SQL_NTS(table) );
Die Parameter werden nur ein bisschen umgeformt und dann direkt an SQLPrimaryKeys übergeben; genau in der selben Reihenfolge.

also versuch's mal mit odbc_primarykeys($odbc, '', '', 'nameDerTabelle');
vielleicht geht auch odbc_primarykeys($odbc, NULL, NULL, 'nameDerTabelle');
VolkerK ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2005, 08:41   Nach oben    #5
Neuer Benutzer
 
Registriert seit: 29.08.2005
Beiträge: 4
Standard odbc_primarykeys

Hey Volker, danke für die detaillierte und erklärende Antwort.
Leider klappt es bei mir nicht, ich weiss nicht woran es liegt.

PHP-Code:
<?php
$keys 
odbc_primarykeys($connection'''''Prozesstyp');

$keys odbc_primarykeys($connectionNULLNULL'Prozesstyp');
?>
verursachen beide den folgenden Fehler:

Zitat:
Warning: odbc_primarykeys() [function.odbc-primarykeys]: SQL error: , SQL state 00000 in SQLPrimaryKeys in C:\apachefriends\xampp\htdocs\startproject\test.ph p on line 48
Ich gehe doch richtig in der Annahme, dass mit 'resource connection_id' (der 1. Parameter) die Variable gemeint ist, der 'odbc_connect($dsn, $user, $pass);' zugewiesen wird?!

Also bei mir mangelt es ja wirklich nicht an allg. PHP-Wissen, aber mit dieser speziellen Funktion hab ich wirklich so meine Probleme...


// EDIT:
so...nach tagelanger Suche wegen diesem Problem hab ich jetzt das gefunden: http://phpbuilder.com/board/showthre...bc_primarykeys

Zitat: "These functions will not work with MS Access. They do however work with MYSQL, SQL Server and postgreSQL. "

Na Herzlichen Glückwunsch... Keine Ahnung ob das stimmt, was der Typ sagt, aber es würde zumindest erklären, warum ich seit einer Woche diese odbc_primarykeys nicht ans laufen kriege...
Vielleicht hätte ich im OP auch mal erwähnen sollen, dass ich Access verwende?
HoriZZon ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.08.2005, 15:56   Nach oben    #6
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard odbc_primarykeys

Ausgerechnet ...har har... stammt odbc nicht von Microsoft?
Na egal, über adodb und die jet engine kommt man ran - jedenfalls unter win32, denn es ist ein "Umweg" über COM.

PHP-Code:
<?php
$db_dir 
dirname(__FILE__);
$db_fqp $db_dir.'/db1.mdb';
file_exists($db_fqp) or die('Datenbank-Datei nicht gefunden: '.$db_fqp);

$dns =  'Provider=Microsoft.Jet.OLEDB.4.0;' .
        
'Data Source='.$db_fqp;
        
$ado = new COM('ADODB.Connection');
$cat = new COM('ADOX.Catalog');

$ado->open($dns);
$cat->ActiveConnection $ado;

echo 
'Tables: '"<br />\n";
foreach (
$cat->Tables as $table)
{
  echo 
'  <fieldset><legend>'$table->Name'</legend>'"\n";
  foreach(
$table->Indexes as $index)
  { 
?>    
    <table>
      <tr>
        <th>Index</th>
        <th><?php echo $index->Name?></th>
      </tr>
      <tr>
        <td>IndexNulls</td>
        <td><?php echo $index->IndexNulls?></td>
      </tr>
      <tr>
        <td>Unique</td>
        <td><?php echo $index->Unique?></td>
      </tr>
      <tr>
        <td>PrimaryKey</td>
        <td><?php echo $index->PrimaryKey?></td>
      </tr>
      <tr>
        <td>Clustered</td>
        <td><?php echo $index->Clustered?></td>
      </tr>
    </table>
<?php
  
}
  echo 
'  </fieldset>'"\n";
}
?>
getestet mit php 5.1rc1 mit access aus office2000 unter windows xp.
Auf eine bestimmte Tabelle (z.B. names Tabelle1) kann per $table = $cat->Tables->Item('Tabelle1') oder einfach $table = $cat->Tables['Tabelle1']; zugegriffen werden.

Wenn irgendwas schiefgeht, fliegt eine com_exception, die abgefangen werden kann.
IndexNulls kann anscheinend den Wert 1 oder 2 annehmen.
Die anderen flags sind entweder mit 1 gesetzt oder leer.

siehe auch: http://msdn.microsoft.com/library/de...ireference.asp
VolkerK ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.09.2005, 13:40   Nach oben    #7
Neuer Benutzer
 
Registriert seit: 29.08.2005
Beiträge: 4
Standard odbc_primarykeys

Danke nochmal, Volker!

Habe jetzt allerdings jetzt nen anderen Weg gewählt, weil es sowieso nicht bei der Access DB bleiben soll, sondern irgendwann auf Oracle oder MS SQL laufen soll...man weiss es nicht, noch ein bisschen unentschlossen die Firma.

Auf jeden Fall hab ich die Access DB jetzt in eine mySQL DB konvertiert und arbeitet darauf mit sonem mySQL ODBC Connector Treiber mit ODBC-Befehlen... da funzt die odbc_primarykeys ohne Probleme.
HoriZZon ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.09.2005, 16:44   Nach oben    #8
Benutzer
 
Registriert seit: 17.08.2005
Beiträge: 87
Standard odbc_primarykeys

Weise Wahl.
Nichts gegen Access in Access/VBA-Projekten (o.ä.). Aber ohne Not als externe Datenquellen ...naja, muss nicht sein
VolkerK ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:55 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44